Python之Class&Object用法詳解
類和對象的概念很難去用簡明的文字描述清楚。從知乎上面的一個(gè)回答中可以嘗試去理解:
對象:對象是類的一個(gè)實(shí)例(對象不是找個(gè)女朋友),有狀態(tài)和行為。例如,一條狗是一個(gè)對象,它的狀態(tài)有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
類:類是一個(gè)模板,它描述一類對象的行為和狀態(tài)。
我覺得有一本書對這個(gè)類與對象描述的特別好:Head First Java第2版中文版,大家可以通過Java去學(xué)習(xí)類和對象。
class
class是用來定義類的。類在面向?qū)ο缶幊汤锩媸呛苡杏玫模軌虼蟠筇嵘_發(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è)類可以通過一個(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 類是子類,但是通過定義,繼承了父類。所以在后面實(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è)概念很抽象,但是用例子來說明一下就不會(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用法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python代碼實(shí)現(xiàn)將列表中重復(fù)元素之間的內(nèi)容全部濾除
這篇文章主要介紹了python代碼實(shí)現(xiàn)將列表中重復(fù)元素之間的內(nèi)容全部濾除,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05pandas 按日期范圍篩選數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了pandas 按日期范圍篩選數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python中使用iterrows()對dataframe進(jìn)行遍歷的實(shí)例
今天小編就為大家分享一篇python中使用iterrows()對dataframe進(jìn)行遍歷的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06多個(gè)版本的python共存時(shí)使用pip的正確做法
這篇文章主要介紹了多版本python共存時(shí)使用pip的正確做法,幫助有多個(gè)python版本需求的人可以正確的導(dǎo)包,感興趣的朋友可以了解下2020-10-10Python多進(jìn)程池 multiprocessing Pool用法示例
這篇文章主要介紹了Python多進(jìn)程池 multiprocessing Pool用法,結(jié)合實(shí)例形式分析了多進(jìn)程池 multiprocessing Pool相關(guān)概念、原理及簡單使用技巧,需要的朋友可以參考下2018-09-09詳解Django中 render() 函數(shù)的使用方法
這篇文章主要介紹了Django中 render() 函數(shù)的使用方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04