日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python学习记录 面向对象

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

2022.08.15 DAY31

面向對象三大特征

封裝

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

繼承

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

  • 子類繼承父類(基類)

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

  • 語法格式:

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

  • 定義子類時,必須在其構造函數中調用父類的構造函數。調用格式如下:

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

實例:

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) # 必須顯式調用父類的初始化方法,不然解釋器不會去調用self.score = scoredef get_info(self):print(self.name, "的年齡為:", self.age, "分數為:", self.score)def test():s = Student("YJP", 21, 149)s.get_info()print(dir(s))if __name__ == "__main__":test()

運行結果:

YJP 的年齡為: 21 分數為: 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']
  • 成員繼承:子類繼承了父類除構造方法之外的所有成員。
  • 方法重寫:子類可以重新定義父類中的方法,這樣就會覆蓋父類的方法,也稱為重寫。

重寫案列:

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) # 必須顯式調用父類的初始化方法,不然解釋器不會去調用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()

運行結果:

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。