Python之Class&Object用法詳解
類和對(duì)象的概念很難去用簡(jiǎn)明的文字描述清楚。從知乎上面的一個(gè)回答中可以嘗試去理解:
對(duì)象:對(duì)象是類的一個(gè)實(shí)例(對(duì)象不是找個(gè)女朋友),有狀態(tài)和行為。例如,一條狗是一個(gè)對(duì)象,它的狀態(tài)有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
類:類是一個(gè)模板,它描述一類對(duì)象的行為和狀態(tài)。
我覺(jué)得有一本書(shū)對(duì)這個(gè)類與對(duì)象描述的特別好:Head First Java第2版中文版,大家可以通過(guò)Java去學(xué)習(xí)類和對(duì)象。
class
class是用來(lái)定義類的。類在面向?qū)ο缶幊汤锩媸呛苡杏玫?,能夠大大提升開(kāi)發(fā)效率和代碼維護(hù)性。直接上代碼學(xué)習(xí):
class student(object):
def print_info(self):
print("student's info is very important!")
student1 = student()
student1.print_info()
運(yùn)行結(jié)果如圖:

class student():
def __init__(self,name,gender):
self.Name = name
self.Gender = gender
print("student's name is ",name,' and it is a ',gender)
testman = student("Mike","Male")
這個(gè)類可以通過(guò)一個(gè)__init__ 進(jìn)行初始化,相當(dāng)于定義類了。在主代碼中,先要進(jìn)行實(shí)例化,即testman = student() 然后才能調(diào)用里面的方法。運(yùn)行結(jié)果如下:

繼承
關(guān)于繼承,就是子類可以繼承父類的公有函數(shù)。例如:
class Parent:
def Family(self):
print("we are family")
class Child(Parent):
pass
father = Parent()
son = Child()
father.Family()
son.Family()
在這里,Parent 類是父類,Child 類是子類,但是通過(guò)定義,繼承了父類。所以在后面實(shí)例化之后,son 依然可以調(diào)用父類的函數(shù)。最后的運(yùn)行結(jié)果如下:

override
當(dāng)然,子類除了繼承,還可以重寫父類的函數(shù)功能。
class Parent:
def Family(self):
print("we are family")
class Child(Parent):
def Family(self):
print("hey,i am son")
father = Parent()
son = Child()
father.Family()
son.Family()
在這個(gè)例子中,Child 類重寫了父類函數(shù)里面的Family 函數(shù),最后的運(yùn)行結(jié)果如下:

super
super是一個(gè)超類。這個(gè)概念很抽象,但是用例子來(lái)說(shuō)明一下就不會(huì)那么抽象了。
class Parent:
def Family(self):
print("we are family")
class Child(Parent):
def Family(self):
print("hey,i am son")
super(Child,self).Family()
print("again, i am son")
father = Parent()
son = Child()
father.Family()
son.Family()
運(yùn)行結(jié)果如下:
從上面的例子很容易看出,super 就是將父類的函數(shù)再調(diào)用了一次。

以上這篇Python之Class&Object用法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mysql數(shù)據(jù)庫(kù)反向生成Django里面的models指令方式
這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)反向生成Django里面的models指令方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
詳解如何使用Plotly和Dash進(jìn)行數(shù)據(jù)可視化
數(shù)據(jù)可視化是數(shù)據(jù)分析中至關(guān)重要的一環(huán),它能夠幫助我們更直觀地理解數(shù)據(jù)并發(fā)現(xiàn)隱藏的模式和趨勢(shì),本文將介紹如何使用Plotly和Dash進(jìn)行數(shù)據(jù)可視化,感興趣的可以了解下2024-04-04
Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)匯聚層理解
通常當(dāng)我們處理圖像時(shí),我們希望逐漸降低隱藏表示的空間分辨率,聚集信息,這樣隨著我們?cè)谏窠?jīng)網(wǎng)絡(luò)層疊的上升,每個(gè)神經(jīng)元對(duì)其敏感的感受野(輸入)就越大2021-10-10
python:批量統(tǒng)計(jì)xml中各類目標(biāo)的數(shù)量案例
這篇文章主要介紹了python:批量統(tǒng)計(jì)xml中各類目標(biāo)的數(shù)量案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Python導(dǎo)入Excel數(shù)據(jù)表的幾種實(shí)現(xiàn)方式
在Python中可以使用許多庫(kù)來(lái)處理Excel文件,下面這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入Excel數(shù)據(jù)表的幾種實(shí)現(xiàn)方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
使用BeautifulSoup和Pandas進(jìn)行網(wǎng)頁(yè)數(shù)據(jù)抓取與清洗處理
在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的項(xiàng)目中,數(shù)據(jù)的獲取,清洗和處理是非常關(guān)鍵的步驟,下面我們就來(lái)講講如何利用Python中的Beautiful Soup庫(kù)進(jìn)行這樣的操作吧2025-02-02
Python自定義進(jìn)程池實(shí)例分析【生產(chǎn)者、消費(fèi)者模型問(wèn)題】
這篇文章主要介紹了Python自定義進(jìn)程池,結(jié)合實(shí)例分析了Python使用自定義進(jìn)程池實(shí)現(xiàn)的生產(chǎn)者、消費(fèi)者模型問(wèn)題,需要的朋友可以參考下2016-09-09
Python Pandas工具繪制數(shù)據(jù)圖使用教程
Pandas是基于NumPy 的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas還可以繪制多重?cái)?shù)據(jù)圖表,本文將為大家介紹如何通過(guò)Pandas繪制圖表,感興趣的可以了解一下2021-12-12
Python刪除docx文檔中的頁(yè)眉和頁(yè)腳的示例代碼
在日常工作中,我們經(jīng)常需要處理文檔,其中包括刪除或修改頁(yè)眉和頁(yè)腳,本文將介紹如何使用Python編程語(yǔ)言和wxPython模塊創(chuàng)建一個(gè)簡(jiǎn)單的GUI應(yīng)用程序,幫助我們刪除docx文檔中的頁(yè)眉和頁(yè)腳,需要的朋友可以參考下2025-01-01
Python實(shí)現(xiàn)處理Excel數(shù)據(jù)并生成只讀模式
這篇文章主要為大家詳細(xì)介紹了如何使用 Python 處理 Excel 數(shù)據(jù),并生成只讀模式的 Excel 文檔,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以參考下2023-11-11

