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

先提问题的场景:

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以外,是否有其他方案能够动态调用方法获取返回值的。非常感谢大家!

慕雪6442864
浏览 1623回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python