類和實例
類和對象是面向對象編程的兩個主要方面。類創建一個新類型,而對象是這個
類的實例,類使用class關鍵字創建。類的域和方法被列在一個縮進塊中,一般函數
也可以被叫作方法。
(1)類的變量:甴一個類的所有對象(實例)共享使用,只有一個類變量的拷
貝,所以當某個對象對類的變量做了改動時,這個改動會反映到其他所有的實例
上。筆者的理解是:其實它就是一個類的全局變量,類實例化后的對象都可以調
用該變量。
(2)對象的變量:由類的每個對象/實例擁有,因此每個對象都有自己對這個域
的一份拷貝,即它們不是共享的,在同一個類的不同實例中,雖然對象的變量有相
同的名稱,但是它們互不相關。筆者的理解是:不同的對象調用該變量,其值改變
后互不影響。
屬于類級別的變量,在使用時一定要帶上類型名稱,比如MyClass.count;屬于
每個對象級別的變量,在調用時一定要帶上self表明屬于當前對象,比如self.name。
案例2-11類和實例的使用
class MyClass:count=0name='DefaultName'def __init__(self,name):self.name=nameprint('類的變量是%s\n對象的變量是%s'%(MyClass.name,self.name))def setCount(self,count):self.count=countdef getCount(self):return self.countif __name__=='__main__':cls=MyClass('lisi')cls.setCount(10)print('對象的count=%d'%cls.getCount())
輸出結果
類的變量是DefaultName
對象的變量是lisi
對象的count=10
__init__方法屬于Python語言的構造函數,一個類只能有一個一__init__方法,用
于初始化類及其變量。
通過對象的setCount()、getCount()函數處理它的變量。