这是代码,在 _getTestObj() 中创建演示实例时,由 exec 定义的类“demo”不起作用。
文件名:test.py
class runOneIni():
def _getTestObj(self):
demo(self.tcName,secSetup,doc)
def start():
#implicit define 'demo' class by exec is not working, get error in runOneIni->_getTestObj, Error is :
# NameError: name 'demo' is not defined
a='global demo'
exec(a)
str="class demo(tInvokeMethod.tInvokeMethod): pass'
exec(str)
#Explict define demo class is working
#global demo
#class demo(tInvokeMethod.tInvokeMethod): pass
if __name__ == '__main__':
start()
最佳答案
(1) 您有一个未终止的字符串
(2) 不需要使用 exec
来执行此操作。 class
本身是一条可执行语句,它可以出现在任何其他语句可以出现的任何地方(需要表达式语句的地方除外)。
关于python - 为什么 python exec Define class 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363068/