這裏是代碼,由exec定義的類'demo'在_getTestObj()中創建演示實例時不起作用。爲什麼python exec定義類不工作
文件名: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()
我想要做的就是動態創建類,本例中名爲'demo'的類,但類名不固定,它是可變的。所以我的想法是使用字符串來組裝創建類語句,即exec字符串。 – brike 2012-02-20 15:54:03
那麼,動態地創建這個類,你幾乎不需要'exec'來做到這一點! – kindall 2012-02-20 15:55:23
如何'動態創建類'? – brike 2012-02-20 16:22:10