class Animal(object): # 類對象
age = 0 # 公有類屬性
__like = None # 私有類屬性
def __init__(self): # 魔法方法
self.name = 'haha' # 公有執行個體屬性
self.__sex = 'man' # 私有執行個體屬性
def smile(self): # 公有方法 self指向執行個體對象
pass
def __jump(self): # 私有方法
pass
@classmethod
def run(cls): # 類方法 cls 指向類對象
pass
@staticmethod
def msg(): # 靜态方法,可以沒有參數
pass
'''
# 類對象:
将具有相似屬性和方法的對象總結抽象為類對象,可以定義相似的一些屬性和方法,不同的執行個體對象去引用類對象的屬性和方法,能減少代碼的重複率。
# 類屬性:
類對象所有的屬性,類對象和執行個體對象均可以通路,被它們共同擁有;
# 公有類屬性:
可以在類外修改類屬性,需要通過類對象引用直接修改;
類内可以通過類方法修改類屬性。
如果通過執行個體對象來引用類屬性,相當于執行個體對象在執行個體方法中建立了一個和類屬性相同的名字,等同于局部變量執行個體屬性,和類屬性無關;
# 私有類屬性:
類外通過類對象引用不能直接更改,隻能通過執行個體方法調用類對象更改。
# 類方法:
需要修飾器@classmethod,标示其為類方法,類方法的第一個參數必須為類對象,一般用cls表示,通過cls引用的必須是類屬性和類方法。
# 靜态方法:
需要修飾器@staticmethod,标示其為靜态方法。需要做一些功能,和類相關,但不需要類和對象參與,此時可以使用靜态方法,靜态方法可以不需要參數。
# 執行個體對象:
通過類對象建立的執行個體對象
# 執行個體屬性:
通過方法定義的屬性
# 私有執行個體屬性:
__開頭定義的變量名;隻能通過方法調用來更改
公有執行個體屬性:
可以通過執行個體對象重新定義
# 執行個體方法:
第一個參數公認為self,可以調用類對象和執行個體對象。
# 私有方法:
隻能在類内調用,如果類外調用,則需要類内的公有方法調用類内的私有方法,在類外調用這個公有方法,則間接調用了私有方法。
一個程式中最核心的内容,不能随意調用,可以設定為私有方法,通過公有方法的判斷去調用私有方法!
# 公有方法:
可以在類内類外随意調用。
# 魔法方法:
例如__init__方法,用兩個__前後包裹的方法
'''