---恢復內容開始---
1.1類的相關知識
聲明
def functionName(args):"函數文檔字符串""""函數體""" class 類名:"""類的文檔字符串""""""類體""" #我們創建一個類 class Date:pass #聲明函數vs聲明類
?
屬性
class Person: #定義一個人類role = 'person' #人的角色屬性都是人def walk(self): #人都可以走路,也就是有一個走路方法print("person is walking...")print(Person.role) #查看人的role屬性 print(Person.walk) #引用人的走路方法,注意,這里不是在調用
?
實例化:類名加括號就是實例化,會自動觸發__init__函數的運行,可以用它來為每個實例定制自己的特征
實例化的過程就是類--->對象的過程
原本我們只有一個Person類,在這個過程中,產生了一個egg對象,有自己具體的名字,攻擊力和生命值
語法:對象名=類名(參數)
self
self:在實例化時自動將對象/實例本身傳遞給__init__的第一個參數
一:我們定義的類的屬性到底存到哪里了?有兩種方式查看
dir(類名):查出的是一個名字列表
類名.__dict__:查出的是一個字典,key為屬性名,value為屬性值二:特殊的類屬性
類名.__name__# 類的名字(字符串)
類名.__doc__# 類的文檔字符串
類名.__base__# 類的第一個父類(在講繼承時會講)
類名.__bases__# 類所有父類構成的元組(在講繼承時會講)
類名.__dict__# 類的字典屬性
類名.__module__# 類定義所在的模塊
類名.__class__# 實例對應的類(僅新式類中)
1.2 對象的相關知識
class 類名:def __init__(self,參數1,參數2):self.對象的屬性1 = 參數1self.對象的屬性2 = 參數2def 方法名(self):passdef 方法名2(self):pass對象名 = 類名(1,2) #對象就是實例,代表一個具體的東西#類名() : 類名+括號就是實例化一個類,相當于調用了__init__方法#括號里傳參數,參數不需要傳self,其他與init中的形參一一對應#結果返回一個對象 對象名.對象的屬性1 #查看對象的屬性,直接用 對象名.屬性名 即可 對象名.方法名() #調用類中的方法,直接用 對象名.方法名() 即可
?
1.3類名空間與對象的名稱空間
創建一個雷就會創建一個類的名稱空間,用來存儲類中定義的所有名字,這些名字稱之為類的屬性
而類有兩種屬性:靜態屬性和動態屬性
靜態屬性就是直接在類中定義的變量
動態屬性就是定義在類中的方法
其中類的數據屬性是共享給所有的對象的
而類的動態屬性是綁定到所有的對象的
?