Python面向?qū)ο笾?lèi)和對(duì)象
類(lèi)
定義類(lèi)
- 所有類(lèi)名首字母要求大寫(xiě),多個(gè)單詞時(shí)遵循駝峰命名法
- 所有未定義父類(lèi)的類(lèi)都繼承object
格式:class 類(lèi)名[(父類(lèi))]:
#兩種方式意思相同 class Person: pass class Person(object): pass
定義類(lèi)和屬性
name、age、subject就是類(lèi)屬性
class Student: #類(lèi)屬性 name = '' age = 0 subject = []
類(lèi)中方法
對(duì)象方法(普通方法)
格式: def 方法名(self[,parm1,parm2...]): pass
self就是對(duì)象本身
class Student: # 類(lèi)屬性 name = 'student' age = 0 subject = [] # 普通方法 def study(self): print(self.name, '正在學(xué)習(xí)...') xiaoming = Student() xiaoming.name = 'xiaoming' xiaoming.study()
------------
輸出:
xiaoming 正在學(xué)習(xí)...
class Student: # 類(lèi)屬性 name = 'student' age = 0 subject = [] # 普通方法 def study(self, name): print(name, '正在學(xué)習(xí)...') s1 = Student() s1.study('xiaohong')
----------------
輸出:
xiaohong 正在學(xué)習(xí)...
類(lèi)方法
格式: @classmethod def 方法名(cls): pass
- 類(lèi)方法使用@classmethod裝飾器
- 對(duì)象方法傳入的是self,類(lèi)方法傳入的是cls
- 類(lèi)方法可以直接用類(lèi)調(diào)用,或者可以用類(lèi)的實(shí)例(對(duì)象)調(diào)用
class Dog: dog_type = '阿拉斯加' def __init__(self, nickname): self.name = nickname def dog_run(self): print('{}在公園里跑.看起來(lái)是一只{}.'.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()
--------------
輸出:
肉丸在公園里跑.看起來(lái)是一只小泰迪.
阿拉斯加 很乖,坐下了
靜態(tài)方法
- 靜態(tài)方法使用裝飾器@staticmethod
- 靜態(tài)方法沒(méi)有參數(shù)
- 當(dāng)方法跟類(lèi)屬性和對(duì)象屬性都沒(méi)有關(guān)系的時(shí)候,使用靜態(tài)方法
- 支持對(duì)象和類(lèi)名直接調(diào)用
class Dog: def __init__(self, nickname): self.name = nickname @staticmethod def dog_sit(): print('很乖,坐下了') dog1 = Dog('肉丸') dog1.dog_sit() Dog.dog_sit() ---------------------
輸出:
很乖,坐下了
很乖,坐下了
魔術(shù)方法
格式: def __方法名__(self): pass
__init__() 構(gòu)造函數(shù)
- 如果沒(méi)有__init__。直接利用類(lèi)向內(nèi)存申請(qǐng)一個(gè)和類(lèi)一樣的空間,給到對(duì)象。
- 如果有__init__。利用類(lèi)向內(nèi)存申請(qǐng)一個(gè)和類(lèi)一樣空間,內(nèi)存空間(self)傳遞給__iniy__,執(zhí)行__init__的函數(shù)。最后將內(nèi)存空間給到對(duì)象。
對(duì)象
創(chuàng)建對(duì)象
格式:對(duì)象名 = 類(lèi)名()
class Student: #類(lèi)屬性 name = '' age = 0 subject = [] xiaoming = Student()
對(duì)象屬性
- 當(dāng)創(chuàng)建了對(duì)象時(shí),對(duì)象會(huì)繼承類(lèi)的屬性。獲取屬性的時(shí)候,也是從類(lèi)中獲取屬性。
- 當(dāng)對(duì)默認(rèn)的類(lèi)屬性賦值后(對(duì)象名.屬性 = xxxx),屬性才會(huì)變成對(duì)象屬性。
class Student: # 類(lèi)屬性 name = 'student' age = 0 subject = [] xiaoming = Student() print('類(lèi)屬性:', xiaoming.name) # 此時(shí)是從類(lèi)中獲取的類(lèi)屬性 xiaoming.name = 'xiaoming' # 因?yàn)橘x值了,此時(shí)變成了對(duì)象屬性 print('對(duì)象屬性:', xiaoming.name) -------------
輸出:
類(lèi)屬性: student
對(duì)象屬性: xiaoming
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python使用pydub模塊轉(zhuǎn)換音頻格式以及對(duì)音頻進(jìn)行剪輯
這篇文章主要給大家介紹了關(guān)于Python使用pydub模塊轉(zhuǎn)換音頻格式以及對(duì)音頻進(jìn)行剪輯的相關(guān)資料pydub是python的高級(jí)一個(gè)音頻處理庫(kù),可以讓你以一種不那么蠢的方法處理音頻。需要的朋友可以參考下2021-06-06

Python詳細(xì)對(duì)比講解break和continue區(qū)別

使用Mac時(shí)psycopg2導(dǎo)入PyCharm失敗的解決

ZABBIX3.2使用python腳本實(shí)現(xiàn)監(jiān)控報(bào)表的方法

Python基于回溯法子集樹(shù)模板解決0-1背包問(wèn)題實(shí)例

pytorch搭建模型的五大層次級(jí)別解讀(由淺入深)

解決Keras 自定義層時(shí)遇到版本的問(wèn)題

使用Python串口實(shí)時(shí)顯示數(shù)據(jù)并繪圖的例子