为了账号安全,请及时绑定邮箱和手机立即绑定

关于python3.5使用exec动态调用方法获取返回值的问题:单独执行好使,但是封装在class里就会报错?

关于python3.5使用exec动态调用方法获取返回值的问题:单独执行好使,但是封装在class里就会报错?

慕雪6442864 2019-02-20 21:17:08
先提问题的场景: sa='a=1' exec(sa) print(a) 以上代码可执行 class tess(): def ex(self): sa='a=1' exec(sa) print(a) s=tess() s.ex() 以上代码会报错,提示a未定义 class tess(): def ex(self): a=0 sa='a=1' exec(sa) print(a) s=tess() s.ex() 以上代码显示的仍是0,而不是1 小弟想实现的是动态拼接调用方法,获取返回值的字符串,例如,动态拼接出exec_result=D_function('para1','para2')的字符串,然后使用exec执行该语句,并取得exec_result。但是这个字符串一旦放入def就会报未定义错误。如果提前定义好exec_result,但是如果提前定义好exec_result,虽然不报错,但是仍得不到想要的返回值。请教各位大神,如何能够实现小弟想要的效果或者,除了exec以外,是否有其他方案能够动态调用方法获取返回值的。非常感谢大家!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1621 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信