您好,登錄后才能下訂單哦!
本篇內容介紹了“Python中變量的說明介紹”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Python變量中所有的類成員都是公共的 ,所有的方法都是有效的,只有一個例外:如果你使用的數據成員名稱以 雙下劃線前綴 比如__privatevar,Python的名稱管理體系會有效地把它作為私有變量。
這樣就有一個慣例,如果某個變量只想在類或對象中使用,就應該以單下劃線前綴。而其他的名稱都將作為公共的,可以被其他類/對象使用。記住這只是一個慣例,并不是Python所要求的(與雙下劃線前綴不同),同樣,注意__del__方法與 destructor 的概念類似。
有兩種類型的域 ——類的變量和對象的變量,它們根據是類還是對象 擁有 這個變量而區分。類的變量 由一個類的所有對象(實例)共享使用。只有一個類Python變量的拷貝,所以當某個對象對類的Python變量做了改動的時候,這個改動會反映到所有其他的實例上。
對象的變量 由類的每個對象/實例擁有。因此每個對象有自己對這個域的一份拷貝,即它們不是共享的,在同一個類的不同實例中,雖然對象的變量有相同的名稱,但是是互不相關的。通過一個例子會使這個易于理解使用類與對象的變量。
#!/usr/bin/python # Filename: objvar.py class Person: '''Represents a person.''' population = 0 def __init__(self, name): '''Initializes the person's data.''' self.name = name print '(Initializing %s)' % self.name # When this person is created, he/she # adds to the population
這是一個很長的例子,但是它有助于說明類與對象的變量的本質。這里,population屬于Person類,因此是一個類的變量。name變量屬于對象(它使用self賦值)因此是對象的變量。
觀察可以發現__init__方法用一個名字來初始化Person實例。在這個方法中,我們讓population增加1,這是因為我們增加了一個人。同樣可以發現,self.name的值根據每個對象指定,這表明了它作為對象的變量的本質。
記住,你只能使用self變量來參考同一個對象的Python變量和方法。這被稱為 屬性參考 。在這個程序中,我們還看到docstring對于類和方法同樣有用。我們可以在運行時使用Person.__doc__和Person.sayHi.__doc__來分別訪問類與方法的文檔字符串。
就如同__init__方法一樣,還有一個特殊的方法__del__,它在對象消逝的時候被調用。對象消逝即對象不再被使用,它所占用的內存將返回給系統作它用。在這個方法里面,我們只是簡單地把Person.population減1。
當對象不再被使用時,__del__方法運行,但是很難保證這個方法究竟在 什么時候 運行。如果你想要指明它的運行,你就得使用del語句,就如同我們在以前的例子中使用的那樣。
“Python中變量的說明介紹”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。