Python 類的相關知識
類的相關知識
一、初識類
聲明函數:
def?functionName(args): ?????'函數文檔字符串' ??????函數體
聲明類:
''' class?類名: ????'類的文檔字符串' ????類體 ''' #我們創建一個類 class?Data: ????pass
class?Person:???#定義一個人類 ????role?=?'person'??#人的角色屬性都是人 ????def?walk(self):??#人都可以走路,也就是有一個走路方法,也叫動態屬性 ????????print("person?is?walking...")
二、類有兩種作用:屬性引用和實例化
class?Person:??#?定義一個人類 ????role?=?'person'??#?人的角色屬性都是人 ????def?walk(self):??#?人都可以走路,也就是有一個走路方法 ????????print("person?is?walking...") print(Person.role)??#?查看人的role屬性 print(Person.walk)??#?引用人的走路方法,注意,這里不是在調用
結果:
D:\YuchuanProjectData\PythonProject\venv\Scripts\python.exe?D:/YuchuanProjectData/PythonProject/Yuchuan_class_info0001.py person
class?Person:??#?定義一個人類 ????role?=?'person'??#?人的角色屬性都是人 ????def?__init__(self,?name): ????????self.name?=?name??#?每一個角色都有自己的昵稱; ????def?walk(self):??#?人都可以走路,也就是有一個走路方法 ????????print("person?is?walking...") print(Person.role)??#?查看人的role屬性 print(Person.walk)??#?引用人的走路方法,注意,這里不是在調用
結果:
D:\YuchuanProjectData\PythonProject\venv\Scripts\python.exe?D:/YuchuanProjectData/PythonProject/Yuchuan_class_info0001.py person
實例化的過程就是類——>對象的過程
原本我們只有一個Person類,在這個過程中,產生了一個egg對象,有自己具體的名字、攻擊力和生命值。
語法:對象名 = 類名(參數)
lola?=?Person('lola')??#?類名()就等于在執行Person.__init__() #?執行完__init__()就會返回一個對象。這個對象類似一個字典,存著屬于這個人本身的一些屬性和方法。
lola?=?Person('lola')??#?類名()就等于在執行Person.__init__() #?執行完__init__()就會返回一個對象。這個對象類似一個字典,存著屬于這個人本身的一些屬性和方法。 print(lola.name)??#?查看屬性直接?對象名.屬性名 print(lola.walk())??#?調用方法,對象名.方法名()
結果:
D:\YuchuanProjectData\PythonProject\venv\Scripts\python.exe?D:/YuchuanProjectData/PythonProject/Yuchuan_class_info0001.py lola person?is?walking... None Process?finished?with?exit?code?0
self:在實例化時自動將對象/實例本身傳給__init__的第一個參數,你也可以給他起個別的名字,但是正常人都不會這么做。
因為你瞎改別人就不認識
一:我們定義的類的屬性到底存到哪里了?有兩種方式查看 dir(類名):查出的是一個名字列表 類名.__dict__:查出的是一個字典,key為屬性名,value為屬性值 二:特殊的類屬性 類名.__name__#?類的名字(字符串) 類名.__doc__#?類的文檔字符串 類名.__base__#?類的第一個父類(在講繼承時會講) 類名.__bases__#?類所有父類構成的元組(在講繼承時會講) 類名.__dict__#?類的字典屬性 類名.__module__#?類定義所在的模塊 類名.__class__#?實例對應的類(僅新式類中) 類屬性的補充
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。