這篇文章主要和大家一起學(xué)習(xí)python類方法與對(duì)象方法,從一個(gè)簡單例子出發(fā)進(jìn)行學(xué)習(xí)筐赔,感興趣的小伙伴們可以參考一下
class Animal(object): # 類對(duì)象
age = 0 # 公有類屬性
__like = None # 私有類屬性
def __init__(self): # 魔法方法
self.name = 'haha' # 公有實(shí)例屬性
self.__sex = 'man' # 私有實(shí)例屬性
def smile(self): # 公有方法 self指向?qū)嵗龑?duì)象
pass
def __jump(self): # 私有方法
pass
@classmethod
def run(cls): # 類方法 cls 指向類對(duì)象
pass
@staticmethod
def msg(): # 靜態(tài)方法铣猩,可以沒有參數(shù)
pass
'''
# 類對(duì)象:
將具有相似屬性和方法的對(duì)象總結(jié)抽象為類對(duì)象,可以定義相似的一些屬性和方法茴丰,不同的實(shí)例對(duì)象去引用類對(duì)象的屬性和方法达皿,能減少代碼的重復(fù)率天吓。
# 類屬性:
類對(duì)象所有的屬性,類對(duì)象和實(shí)例對(duì)象均可以訪問峦椰,被它們共同擁有失仁;
# 公有類屬性:
可以在類外修改類屬性,需要通過類對(duì)象引用直接修改们何;
類內(nèi)可以通過類方法修改類屬性萄焦。
如果通過實(shí)例對(duì)象來引用類屬性,相當(dāng)于實(shí)例對(duì)象在實(shí)例方法中創(chuàng)建了一個(gè)和類屬性相同的名字冤竹,等同于局部變量實(shí)例屬性拂封,和類屬性無關(guān);
# 私有類屬性:
類外通過類對(duì)象引用不能直接更改鹦蠕,只能通過實(shí)例方法調(diào)用類對(duì)象更改冒签。
# 類方法:
需要修飾器@classmethod,標(biāo)示其為類方法钟病,類方法的第一個(gè)參數(shù)必須為類對(duì)象萧恕,一般用cls表示,通過cls引用的必須是類屬性和類方法肠阱。
# 靜態(tài)方法:
需要修飾器@staticmethod票唆,標(biāo)示其為靜態(tài)方法。需要做一些功能屹徘,和類相關(guān)走趋,但不需要類和對(duì)象參與,此時(shí)可以使用靜態(tài)方法噪伊,靜態(tài)方法可以不需要參數(shù)簿煌。
# 實(shí)例對(duì)象:
通過類對(duì)象創(chuàng)建的實(shí)例對(duì)象
# 實(shí)例屬性:
通過方法定義的屬性
# 私有實(shí)例屬性:
__開頭定義的變量名;只能通過方法調(diào)用來更改
公有實(shí)例屬性:
可以通過實(shí)例對(duì)象重新定義
# 實(shí)例方法:
第一個(gè)參數(shù)公認(rèn)為self鉴吹,可以調(diào)用類對(duì)象和實(shí)例對(duì)象姨伟。
# 私有方法:
只能在類內(nèi)調(diào)用,如果類外調(diào)用豆励,則需要類內(nèi)的公有方法調(diào)用類內(nèi)的私有方法夺荒,在類外調(diào)用這個(gè)公有方法,則間接調(diào)用了私有方法肆糕。
一個(gè)程序中最核心的內(nèi)容般堆,不能隨意調(diào)用在孝,可以設(shè)置為私有方法诚啃,通過公有方法的判斷去調(diào)用私有方法!
# 公有方法:
可以在類內(nèi)類外隨意調(diào)用私沮。
# 魔法方法:
例如__init__方法始赎,用兩個(gè)__前后包裹的方法