Python物件導向之繼承

來源:互聯網
上載者:User

標籤:dict   方法   python2   判斷   兩種   衍生類別   ini   查詢   obj   

繼承:    單繼承和多繼承1.初識class Father(object): #如果不寫object預設繼承    passclass Son(Father): #括弧裡面的稱為:父類或基類或超類  括弧外面的稱為:子類或衍生類別    passclass Animal:    breath = ‘呼吸‘    def __init__(self, name, sex, age):        self.name = name        self.sex = sex        self.age = age    def eat(self):        print(self)#111   #<__main__.Person object at 0x111ac3710>        print(‘動物都需要進食....‘)class Person(Animal):    passprint(Person.breath)#呼吸Person.eat(111)#動物都需要進食....p1 = Person(‘Jake‘, ‘男‘, 20)print(p1.breath)#呼吸print(p1)#<__main__.Person object at 0x111ac3710>p1.eat()#動物都需要進食....結果:    呼吸    111    動物都需要進食....    呼吸    <__main__.Person object at 0x111ac3710>    <__main__.Person object at 0x111ac3710>    動物都需要進食....總結:    子類以及子類執行個體化的對象,可以訪問父類的任何方法和變數。    類名可以訪問父類的所有內容。    子類執行個體化的對象也可以訪問父類所有內容。只執行父類的方法:子類中不要定義與父類同名的方法只執行子類的方法:在子類建立這個方法.既要執行子類的方法,又要執行父類的方法?有兩種解決方案.1.通過類名。2.通過super()函數    1,Animal.__init__(self, name, sex, age)    2,super().__init__(name,sex,age)class Animal:    breath = ‘呼吸‘    def __init__(self, name, sex, age):        self.name = name        self.sex = sex        self.age = age    def eat(self, argv):        print(‘%s吃%s‘ % (self.name, argv))class Person(Animal):    def __init__(self, name,sex,age,wing):         # Animal.__init__(self, name, sex, age)        super().__init__(name,sex,age)  #  super(Brid,self).__init__(name,sex,age)        self.wing = wing    def eat(self,argv):        super().eat(argv)        print(‘吃...‘)p1 = Person(‘鸚鵡‘,‘男‘,20,‘綠翅膀‘)print(p1.__dict__)p1.eat(‘金蟬‘)結果:    {‘name‘: ‘鸚鵡‘, ‘sex‘: ‘男‘, ‘age‘: 20, ‘wing‘: ‘綠翅膀‘}    鸚鵡吃金蟬    吃...2.進階類: 經典類, 新式類新式類: 凡是繼承object類都是新式類.    python3x 所有的類都是新式類,因為python3x中的類都預設繼承object.經典類: 不繼承object類都是經典類    python2x:(既有新式類,又有經典類) 所有的類預設都不繼承object類,             所有的類預設都是經典類.你可以讓其繼承object.單繼承: 新式類,經典類查詢順序一樣.多繼承:     新式類: 遵循廣度優先.     經典類: 遵循深度優先.多繼承的新式類  廣度優先 : 一條路走到倒數第二級,判斷,如果其他路能走到終點,則返回走另一條路.如果不能,則走到終點.多繼承的經典類  深度優先 : 一條路走到底.

Python物件導向之繼承

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.