2012-02-14 102 views
0

abc.py,如何在類a中創建b()?Python在函數中定義類,該類可以訪問全局

class a(object): 
    bInst=b() 

def start(): 
    class b(obj): 
    pass 

if __name=='__main__' 
    start() 

但是如何使用變量,下面是代碼,它報告'myCls'沒有定義。

class a(obj): 
    inst=myCls() 

def start 
    tSuiteN="myCls" 
    exec('global tSuiteN') 
    str="class {}(object): pass".format(tSuiteN) 
    exec(str) 
+0

這是什麼..我什至不.. – wim 2012-02-14 03:34:15

回答

3

使其成爲全球。

def start(): 
    global b 
    class b(obj): 
    pass 
+0

你是對的,謝謝! – brike 2012-02-14 03:21:09

+0

只因爲你*可以*做到這一點,不要以爲這是一個好主意。 – geoffspear 2012-02-14 03:30:18

+0

什麼是正確的方法來做到這一點? – brike 2012-02-14 03:31:07