2017-07-17 77 views
4

我不是程序員,編程也很新。試圖學習和理解python使用類,函數和變量的方式。從類到詞典的變量鍵和值Python中的函數

我在下面創建了這段代碼。

class Test: 
    number = 1 
    field = ['Address', 'Name', 'Age'] 

    def book(self): 
     myDict = self.book 
     myDict = {number : field} 
     # Need my Output to be myDict = {1 : ['Address', 'Name', 'Age']} 
     return myDict 

它不顯示任何錯誤,而編譯但拋出,而調用該對象的實例

>>> te = Test() 
>>> te.book() 

Traceback (most recent call last): 
File "<pyshell#9>", line 1, in <module> 
    te.book() 
    myDict = {number : field} 
NameError: name 'number' is not defined 

我在我的腦海的是,在函數外聲明的變量global並且如果該函數裏面沒有這個變量,會被調用函數,有人請澄清我在哪裏弄錯了解這個概念。

回答

2

number在方法外部聲明,而不是全局聲明。它是您創建的課程的一個屬性,因此您應該將其引用爲self.numberTest.number

+0

感謝明白我哪裏錯了 – Watarap

2

不是全局變量,類變量,你可以訪問他們的類名在函數內部:

myDict = {Test. number : Test.field}