日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Python学习记录 面向对象

發(fā)布時間:2024/1/1 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python学习记录 面向对象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2022.08.15 DAY31

面向?qū)ο笕筇卣?/strong>

封裝

  • 隱藏對象的屬性和實現(xiàn)方法,只對外提供必要的方法。

繼承

  • 繼承可以讓子類具有父類的特性,提高代碼的重用性

  • 子類繼承父類(基類)

  • python支持多重繼承,一個子類可以繼承多個父類。

  • 語法格式:

    class 子類類名(父類1[, 父類2, ...]):類體
  • 如果在類定義中沒有指定父類,則默認父類為object類。也就是說,object是所有類的父類,里面定義了所有類的公有的默認實現(xiàn),比如:_new_()。

  • 定義子類時,必須在其構(gòu)造函數(shù)中調(diào)用父類的構(gòu)造函數(shù)。調(diào)用格式如下:

    父類名.__init__(self, 參數(shù)列表)

實例:

class Person:def __init__(self, name, age):self.name = nameself.age = agedef get_info(self):print(self.name, "的年齡為:", self.age)class Student(Person):def __init__(self, name, age, score):Person.__init__(self, name, age) # 必須顯式調(diào)用父類的初始化方法,不然解釋器不會去調(diào)用self.score = scoredef get_info(self):print(self.name, "的年齡為:", self.age, "分數(shù)為:", self.score)def test():s = Student("YJP", 21, 149)s.get_info()print(dir(s))if __name__ == "__main__":test()

運行結(jié)果:

YJP 的年齡為: 21 分數(shù)為: 149 ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'get_info', 'name', 'score']
  • 成員繼承:子類繼承了父類除構(gòu)造方法之外的所有成員。
  • 方法重寫:子類可以重新定義父類中的方法,這樣就會覆蓋父類的方法,也稱為重寫。

重寫案列:

class Person:def __init__(self, name, age):self.name = nameself.age = agedef introduce_name(self):print("我的名字為:", self.name)def introduce_age(self):print("我的年齡為:{0}".format(self.age))class Student(Person):def __init__(self, name, age, score):Person.__init__(self, name, age) # 必須顯式調(diào)用父類的初始化方法,不然解釋器不會去調(diào)用self.score = scoredef introduce_name(self):""" 重寫父類的方法 """print("大家好,我的名字為:", self.name)def introduce_age(self):""" 重寫父類的方法 """print("大家好,我的年齡為:{0}".format(self.age))def test():s = Student("YJP", 21, 149)s.introduce_name()s.introduce_age()if __name__ == "__main__":test()

運行結(jié)果:

大家好,我的名字為: YJP 大家好,我的年齡為:21

總結(jié)

以上是生活随笔為你收集整理的Python学习记录 面向对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。