2013-07-09 83 views
32

,我有:蟒蛇:NameError:全局名稱」 ...「沒有定義在我的代碼

class A: 
    def a(): 
     ...... 

    def b(): 
     a() 
     ...... 
    b() 

編譯器會說‘NameError:全球名稱()沒有定義。’如果我把所有東西都從A類中抽出來,那就沒有問題了,但是我怎樣才能在A類中定義這個方法呢?非常感謝你。

+0

不,它不是引發該異常的編譯器。這是Python解釋器循環。 –

+0

爲什麼要從類定義中調用()? –

+0

@TravisGD我總是在Java中執行此操作,例如在另一種方法中調用方法... – Robert

回答

58

您需要致電self.a()b調用aa不是是一個全局函數,它是一個類的方法。

您可能想要詳細瞭解Python tutorial on classes以獲取更多細節。

+0

謝謝,但是我必須在方法參數中添加「self」:a(self),b(self)? – Robert

+0

此外,我認爲你必須讓Aa()成爲靜態方法或類方法,因爲在實例化A實例之前,您嘗試調用Aa()意味着「self」(第一個實例方法參數)到Aa()將是未定義的。 我不知道爲什麼要這樣做,也不知道如何解決爭論/參考。 –

+0

@Matthias謝謝......我正在研究它.. – Robert

相關問題