亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Klassenvererbung

1. Klassenvererbung definieren

Schauen wir uns zun?chst die grundlegende Syntax der Klassenvererbung an:

class ClassName(BaseClassName):
    <statement-1>
    .
    .
    .
    <statement-N>

Wenn Sie eine Klasse definieren, k?nnen Sie sie angeben in Klammern Wenn Sie beim Schreiben geerbter Klassen, wie eingangs erw?hnt, keine Klassen erben müssen, müssen Sie auch geerbte Objektklassen schreiben, da in Python die Objektklasse die übergeordnete Klasse aller Klassen ist.

Natürlich handelt es sich bei dem oben Gesagten um eine Einzelvererbung. Python unterstützt auch die Mehrfachvererbung. Die spezifische Syntax lautet wie folgt:

class ClassName(Base1,Base2,Base3):
    <statement-1>
    .
    .
    .
    <statement-N>

Eine Sache, die Sie bei der Mehrfachvererbung beachten sollten: Wenn dieselben Methodennamen vorhanden sind die übergeordnete Klasse. Wenn sie bei Verwendung einer Unterklasse nicht angegeben wird, sucht Python von links nach rechts in der Reihenfolge der übergeordneten Klasse in Klammern. Das hei?t, wenn die Methode nicht in der Unterklasse gefunden wird, wird von links nach rechts gesucht rechts, um zu sehen, ob die Methode in der übergeordneten Klasse enthalten ist.

Was k?nnen geerbte Unterklassen also tun?

Vorteile geerbter Unterklassen:

erbt die Attribute und Methoden der übergeordneten Klasse

Sie k?nnen es selbst definieren und die Attribute und Methoden der übergeordneten Klasse überschreiben

2. Rufen Sie die Methode der übergeordneten Klasse auf

Nachdem eine Klasse die übergeordnete Klasse geerbt hat, kann sie die Methode der übergeordneten Klasse direkt aufrufen, wie im folgenden Beispiel: UserInfo2 Von der übergeordneten Klasse UserInfo geerbt, k?nnen Sie die get_account-Methode der übergeordneten Klasse direkt aufrufen.

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class UserInfo(object):
    lv = 5
    def __init__(self, name, age, account):
        self.name = name
        self._age = age
        self.__account = account
    def get_account(self):
        return self.__account
class UserInfo2(UserInfo):
    pass
if __name__ == '__main__':
    userInfo2 = UserInfo2('兩點(diǎn)水', 23, 347073565);
    print(userInfo2.get_account())

3. überschreiben von übergeordneten Klassenmethoden

Natürlich k?nnen Sie auch übergeordnete Klassenmethoden überschreiben.

Beispiel:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
class UserInfo(object):
    lv = 5
    def __init__(self, name, age, account):
        self.name = name
        self._age = age
        self.__account = account
    def get_account(self):
        return self.__account
    @classmethod
    def get_name(cls):
        return cls.lv
    @property
    def get_age(self):
        return self._age
class UserInfo2(UserInfo):
    def __init__(self, name, age, account, sex):
        super(UserInfo2, self).__init__(name, age, account)
        self.sex = sex;
if __name__ == '__main__':
    userInfo2 = UserInfo2('兩點(diǎn)水', 23, 347073565, '男');
    # 打印所有屬性
    print(dir(userInfo2))
    # 打印構(gòu)造函數(shù)中的屬性
    print(userInfo2.__dict__)
    print(UserInfo2.get_name())

Das letzte gedruckte Ergebnis:

cbf5cc8617f8b40e0e38e94fd0d892e.png

Hier ist der Konstruktor der übergeordneten Klasse, der neu geschrieben wurde.

4. Typbeurteilung von Unterklassen

Für die Vererbungsbeziehung der Klasse müssen wir manchmal den Typ der Klasse beurteilen.

Sie k?nnen die Funktion isinstance() verwenden

Sie k?nnen die Verwendung der Funktion isinstance() anhand eines Beispiels verstehen. Das Ausgabeergebnis von

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
class User1(object):
    pass
class User2(User1):
    pass
class User3(User2):
    pass
if __name__ == '__main__':
    user1 = User1()
    user2 = User2()
    user3 = User3()
    # isinstance()就可以告訴我們,一個對象是否是某種類型
    print(isinstance(user3, User2))
    print(isinstance(user3, User1))
    print(isinstance(user3, User3))
    # 基本類型也可以用isinstance()判斷
    print(isinstance('兩點(diǎn)水', str))
    print(isinstance(347073565, int))
    print(isinstance(347073565, str))

lautet wie folgt:

True
True
True
True
True
False

Sie sehen, dass isinstance() uns nicht nur sagen kann, ob ein Objekt von einem bestimmten Typ ist, sondern auch zur Beurteilung verwendet werden kann Grundtypen.

Weiter lernen
||
einreichenCode zurücksetzen