先提问题的场景:
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以外,是否有其他方案能够动态调用方法获取返回值的。非常感谢大家!
添加回答
举报
0/150
提交
取消