自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對Python變量說明介紹

開發(fā) 后端
事實上,它們只是與類和對象的名稱空間 綁定 的普通變量,即這些名稱只在這些類與對象的前提下有效。

Python變量中所有的類成員都是公共的 ,所有的方法都是有效的,只有一個例外:如果你使用的數(shù)據(jù)成員名稱以 雙下劃線前綴 比如__privatevar,Python的名稱管理體系會有效地把它作為私有變量。

這樣就有一個慣例,如果某個變量只想在類或?qū)ο笾惺褂?,就?yīng)該以單下劃線前綴。而其他的名稱都將作為公共的,可以被其他類/對象使用。記住這只是一個慣例,并不是Python所要求的(與雙下劃線前綴不同),同樣,注意__del__方法與 destructor 的概念類似。

有兩種類型的域 ——類的變量和對象的變量,它們根據(jù)是類還是對象 擁有 這個變量而區(qū)分。類的變量 由一個類的所有對象(實例)共享使用。只有一個類Python變量的拷貝,所以當某個對象對類的Python變量做了改動的時候,這個改動會反映到所有其他的實例上。

對象的變量 由類的每個對象/實例擁有。因此每個對象有自己對這個域的一份拷貝,即它們不是共享的,在同一個類的不同實例中,雖然對象的變量有相同的名稱,但是是互不相關(guān)的。通過一個例子會使這個易于理解使用類與對象的變量

  1. #!/usr/bin/python  
  2. # Filename: objvar.py  
  3.  
  4. class Person:  
  5.     '''Represents a person.'''  
  6.     population = 0 
  7.  
  8.     def __init__(self, name):  
  9.         '''Initializes the person's data.'''  
  10.         self.name = name  
  11.         print '(Initializing %s)' % self.name  
  12.  
  13.         # When this person is created, he/she  
  14.         # adds to the population 

這是一個很長的例子,但是它有助于說明類與對象的變量的本質(zhì)。這里,population屬于Person類,因此是一個類的變量。name變量屬于對象(它使用self賦值)因此是對象的變量。

觀察可以發(fā)現(xiàn)__init__方法用一個名字來初始化Person實例。在這個方法中,我們讓population增加1,這是因為我們增加了一個人。同樣可以發(fā)現(xiàn),self.name的值根據(jù)每個對象指定,這表明了它作為對象的變量的本質(zhì)。

記住,你只能使用self變量來參考同一個對象的Python變量和方法。這被稱為 屬性參考 。在這個程序中,我們還看到docstring對于類和方法同樣有用。我們可以在運行時使用Person.__doc__和Person.sayHi.__doc__來分別訪問類與方法的文檔字符串。

就如同__init__方法一樣,還有一個特殊的方法__del__,它在對象消逝的時候被調(diào)用。對象消逝即對象不再被使用,它所占用的內(nèi)存將返回給系統(tǒng)作它用。在這個方法里面,我們只是簡單地把Person.population減1。

當對象不再被使用時,__del__方法運行,但是很難保證這個方法究竟在 什么時候 運行。如果你想要指明它的運行,你就得使用del語句,就如同我們在以前的例子中使用的那樣。

【編輯推薦】

  1. 如何使Python嵌入C++應(yīng)用程序?
  2. 深入探討Ruby與Python語法比較
  3. Python學習資料介紹分享
  4. Python學習經(jīng)驗談:版本、IDE選擇及編碼解決方案
  5. 淺析Python的GIL和線程安全
責任編輯:chenqingxiang 來源: 清華大學出版社
相關(guān)推薦

2010-02-02 14:42:38

Python線程

2010-03-01 13:13:02

Python應(yīng)用線程

2010-02-22 11:14:43

Python編寫

2010-02-26 13:56:08

Python RSS

2010-02-26 10:07:55

Python編程語言

2010-02-24 16:44:58

Python 函數(shù)

2009-12-08 16:09:02

WCF消息

2009-12-21 10:01:05

Oracle技術(shù)

2010-01-25 18:19:17

C++特性

2010-01-25 18:19:17

C++特性

2010-01-25 18:19:17

C++特性

2009-12-14 17:44:39

Visual Stud

2010-01-14 13:39:45

Visual C++優(yōu)

2010-03-01 18:01:45

Python環(huán)境變量

2010-01-15 19:34:25

C++設(shè)計

2010-03-15 09:32:56

Python函數(shù)

2010-01-05 13:29:50

JSON對象

2010-02-02 14:54:28

Python語法

2010-02-03 17:37:30

Python語法

2010-02-01 18:06:48

Python Edit
點贊
收藏

51CTO技術(shù)棧公眾號