91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python面向對象三大特征是什么

發布時間:2021-10-27 17:44:58 來源:億速云 閱讀:318 作者:小新 欄目:開發技術

小編給大家分享一下python面向對象三大特征是什么,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

      一、面向對象三大特征介紹

      Python 是面向對象的語言,也支持面向對象編程的三大特性:繼承、封裝(隱藏)、多態。

      1、封裝(隱藏)

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

      通過“私有屬性、私有方法”的方式,實現“封裝”。Python 追求簡潔的語法

      2、繼承

      繼承可以讓子類具有父類的特性,提高了代碼的重用性。從設計上是一種增量進化,原有父類設計不變的情況下,可以增加新的功能,或者改進已有的算法。

      3、多態

      多態是指同一個方法調用由于對象不同會產生不同的行為。生活中這樣的例子比比皆是:同樣是休息方法,人不同休息方法不同。張三休息是睡覺,李四休息是玩游戲,程序員休息是“敲幾行代碼”。

      二、繼承

      繼承是面向對象程序設計的重要特征,也是實現“代碼復用”的重要手段。
      如果一個新類繼承自一個設計好的類,就直接具備了已有類的特征,就大大降低了工作
      難度。已有的類,我們稱為“父類或者基類”,新的類,我們稱為“子類或者派生類”。

      1、語法格式

      Python 支持多重繼承,一個子類可以繼承多個父類。繼承的語法格式如下:

      class 子類類名(父類 1[,父類 2,...]):

      類體:如果在類定義中沒有指定父類,則默認父類是 object 類。也就是說,object 是所有類的父類,里面定義了一些所有類共有的默認實現,比如:__new__()。

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

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

      class Person:
          def __init__(self,name,age):
              self.name = name
              self.__age = age
          def say_age(self):
              print("年齡是:",self.__age)
      class Student(Person):
          def __init__(self,name,age,grade):
              self.grade = grade
              Person.__init__(self,name,age) 
      # 構造函數中包含調用父類構造函數。根據需要,不是必須。 子類并不會自動調用父類的__init__(),我
      # 們必須顯式的調用它。
      if __name__ == '__main__':
          s=Student('諸葛',18,1)
          s.say_age()

      2、類成員的繼承和重寫

      1. 成員繼承:子類繼承了父類除構造方法之外的所有成員。

      2. 方法重寫:子類可以重新定義父類中的方法,這樣就會覆蓋父類的方法,也稱為“重寫”

      class Person:
          def __init__(self,name,age):
              self.name = name
              self.__age = age
          def say_age(self):
              print("年齡是:",self.__age)
      class Student(Person):
          def __init__(self,name,age,grade):
              self.grade = grade
              Person.__init__(self,name,age) 
          def say_age(self):
              print(self.name,"的年齡是:",self.age)
      # 構造函數中包含調用父類構造函數。根據需要,不是必須。 子類并不會自動調用父類的__init__(),我
      # 們必須顯式的調用它。
      if __name__ == '__main__':
          s=Student('諸葛',18,1)
          s.say_age()

      3、super()獲得父類定義

      在子類中,如果想要獲得父類的方法時,我們可以通過 super()來做。

      super()代表父類的定義,不是父類對象。

      class A:
          def say(self):
              print("A: ",self)
              print("say AAA")
      class B(A):
          def say(self):
              #A.say(self) 調用父類的 say 方法
              super().say() #通過 super()調用父類的方法
              print("say BBB")
      if __name__ =="__main__:
          b = B()
          b.say()

      4、設計模式_工廠模式實現

      工廠模式實現了創建者和調用者的分離,使用專門的工廠類將選擇實現類、創建對象進行統一的管理和控制。

      class CarFactory:
          def createCar(self,brand):
              if brand == "1":
                  return one()
              elif brand == "2":
                  return two()
              elif brand == '3':
                  return three()
              else:
                  return "未知品牌,無法創建"
      class one:
          pass
      class two:
          pass
      class three:
          pass
      factory = CarFactory()
      c1 = factory.createCar("1")
      c2 = factory.createCar("2")
      print(c1)
      print(c2)

      5、設計模式_單例模式實現

      單例模式(Singleton Pattern)的核心作用是確保一個類只有一個實例,并且提供一個訪問該實例的全局訪問點。

      單例模式只生成一個實例對象,減少了對系統資源的開銷。當一個對象的產生需要比較多的資源,如讀取配置文件、產生其他依賴對象時,可以產生一個“單例對象”,然后永久駐留內存中,從而極大的降低開銷。

      class One:
          __obj = None   #  用于存儲這個單例
          __init_flag = True
          def __new__(cls, *args, **kwargs):
               # 指的是One這個類里面的  類屬性
               if cls.__obj == None:
                     # object 是類的默認父類
                   cls.__obj = object.__new__(cls)
               return cls.__obj
          def __init__(self,name):
              if One.__init_flag:
                  print( "init....")
                  self.name = name
                  One.__init_flag = False
      if __name__=='__main__':
          a = One( "aa")
          print(a)
          b = One( "bb")
          print(b)

      看完了這篇文章,相信你對“python面向對象三大特征是什么”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

      向AI問一下細節

      免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

      AI

      偃师市| 酉阳| 潞城市| 浮山县| 巨鹿县| 星子县| 万安县| 莎车县| 利津县| 富源县| 汉沽区| 十堰市| 汉中市| 高台县| 江城| 开鲁县| 信阳市| 双桥区| 呼图壁县| 丰镇市| 马边| 麻江县| 咸阳市| 囊谦县| 曲靖市| 长泰县| 锦州市| 北川| 东源县| 浙江省| 竹北市| 铜梁县| 七台河市| 中西区| 龙游县| 洱源县| 凤凰县| 临夏县| 武川县| 长泰县| 邹平县|