本頁主要討論python中的類繼承時的類變數和類方法的用法。在閱讀相關**時,一定要切記當前 self 是誰,型別是什麼,繼承關係是什麼,mro是什麼。這樣才能準確把握**的呼叫流程。
示例**:注意在類方法 get_name() 對於 displayer/ mysubclass 的例項會列印不同的值
class displayer(object):
name = none
@classmethod
def get_name(cls):
print 'in the get_name:'
# 對於 displayer/ mysubclass 的例項會列印不同的值
print 'cls = , cls.name = '.format(cls, cls.name)
return cls.name
def display(self):
print 'in the display:'
print 'type(self) = , self = '.format(type(self), self)
name = self.get_name()
print 'name = '.format(name)
class mysubclass(displayer):
name = 'robert'
obj1 = displayer()
obj1.display()
print '------'
obj2 = mysubclass()
obj2.display()
the output is:
in the display:
type(self) = , self = <__main__.displayer object at 0x0000000001fd44e0>
in the get_name:
cls = , cls.name = none
name = none
------
in the display:
type(self) = , self = <__main__.mysubclass object at 0x0000000001fe1e48>
in the get_name:
cls = , cls.name = robert
name = robert
python 類之類變數與例項變數
前面,我們已經知道了如何定義乙個python的類,那麼類中可以包含什麼內容呢?乙個python類中,包含了變數和方法。我們看如下 其中的age變數和gender變數定義在類中,但在方法外,這樣的變數就是類變數。類變數為所有例項所共享的變數。對上面的程式做了細微的修改 我們例項化乙個物件 person...
python 類 繼承 python 類的繼承
1 所用的類都可以被繼承 2 沒有繼承其他類的類必然有乙個父類 object 3子類可以擁有父類的 init 裡的類容 派生子類除了父類的一些屬性,還會有自己的屬性和方法,這些就叫派生 如何使用 實現 class animal def init self,name,attack,hp self.na...
類的方法 變數和繼承
1.類方法 定義 使用裝飾器 classmethod。第乙個引數必須是當前類物件,該引數名一般約定為 cls 通過它來傳遞類的屬性和方法 不能傳例項的屬性和方法 呼叫 例項物件和類物件都可以呼叫 應用場景 需要站在類的角度執行某個行為時,那麼就應該定義為類方法 2.例項方法 呼叫 只能由例項物件呼叫...