Python面向對象之類和對象
類
定義類
- 所有類名首字母要求大寫,多個單詞時遵循駝峰命名法
- 所有未定義父類的類都繼承object
格式:class 類名[(父類)]:
#兩種方式意思相同 class Person: pass class Person(object): pass
定義類和屬性
name、age、subject就是類屬性
class Student: #類屬性 name = '' age = 0 subject = []
類中方法
對象方法(普通方法)
格式: def 方法名(self[,parm1,parm2...]): pass
self就是對象本身
class Student: # 類屬性 name = 'student' age = 0 subject = [] # 普通方法 def study(self): print(self.name, '正在學習...') xiaoming = Student() xiaoming.name = 'xiaoming' xiaoming.study()
------------
輸出:
xiaoming 正在學習...
class Student: # 類屬性 name = 'student' age = 0 subject = [] # 普通方法 def study(self, name): print(name, '正在學習...') s1 = Student() s1.study('xiaohong')
----------------
輸出:
xiaohong 正在學習...
類方法
格式: @classmethod def 方法名(cls): pass
- 類方法使用@classmethod裝飾器
- 對象方法傳入的是self,類方法傳入的是cls
- 類方法可以直接用類調用,或者可以用類的實例(對象)調用
class Dog: dog_type = '阿拉斯加' def __init__(self, nickname): self.name = nickname def dog_run(self): print('{}在公園里跑.看起來是一只{}.'.format(self.name, self.dog_type)) @classmethod def dog_sit(cls): print(cls.dog_type, '很乖,坐下了') dog1 = Dog('肉丸') dog1.dog_type = '小泰迪' dog1.dog_run() Dog.dog_sit()
--------------
輸出:
肉丸在公園里跑.看起來是一只小泰迪.
阿拉斯加 很乖,坐下了
靜態(tài)方法
- 靜態(tài)方法使用裝飾器@staticmethod
- 靜態(tài)方法沒有參數(shù)
- 當方法跟類屬性和對象屬性都沒有關系的時候,使用靜態(tài)方法
- 支持對象和類名直接調用
class Dog: def __init__(self, nickname): self.name = nickname @staticmethod def dog_sit(): print('很乖,坐下了') dog1 = Dog('肉丸') dog1.dog_sit() Dog.dog_sit() ---------------------
輸出:
很乖,坐下了
很乖,坐下了
魔術方法
格式: def __方法名__(self): pass
__init__() 構造函數(shù)
- 如果沒有__init__。直接利用類向內(nèi)存申請一個和類一樣的空間,給到對象。
- 如果有__init__。利用類向內(nèi)存申請一個和類一樣空間,內(nèi)存空間(self)傳遞給__iniy__,執(zhí)行__init__的函數(shù)。最后將內(nèi)存空間給到對象。
對象
創(chuàng)建對象
格式:對象名 = 類名()
class Student: #類屬性 name = '' age = 0 subject = [] xiaoming = Student()
對象屬性
- 當創(chuàng)建了對象時,對象會繼承類的屬性。獲取屬性的時候,也是從類中獲取屬性。
- 當對默認的類屬性賦值后(對象名.屬性 = xxxx),屬性才會變成對象屬性。
class Student: # 類屬性 name = 'student' age = 0 subject = [] xiaoming = Student() print('類屬性:', xiaoming.name) # 此時是從類中獲取的類屬性 xiaoming.name = 'xiaoming' # 因為賦值了,此時變成了對象屬性 print('對象屬性:', xiaoming.name) -------------
輸出:
類屬性: student
對象屬性: xiaoming
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
Python使用pydub模塊轉換音頻格式以及對音頻進行剪輯
這篇文章主要給大家介紹了關于Python使用pydub模塊轉換音頻格式以及對音頻進行剪輯的相關資料pydub是python的高級一個音頻處理庫,可以讓你以一種不那么蠢的方法處理音頻。需要的朋友可以參考下2021-06-06python PyQt實現(xiàn)的手寫電子簽名程序實例探究
在本文中,我們將探討如何利用Python以及開源工具來實現(xiàn)手寫電子簽名的功能,通過本文,您將能夠了解到手寫電子簽名的實現(xiàn)方式,并可以在自己的應用程序中應用這一功能2023-12-12Python詳細對比講解break和continue區(qū)別
這篇文章主要介紹了python循環(huán)控制語句 break 與 continue,break就像是終止按鍵,不管執(zhí)行到哪一步,只要遇到break,不管什么后續(xù)步驟,直接跳出當前循環(huán)2022-06-06ZABBIX3.2使用python腳本實現(xiàn)監(jiān)控報表的方法
今天小編就為大家分享一篇ZABBIX3.2使用python腳本實現(xiàn)監(jiān)控報表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07使用Python串口實時顯示數(shù)據(jù)并繪圖的例子
今天小編就為大家分享一篇使用Python串口實時顯示數(shù)據(jù)并繪圖的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12