Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist Vererbung von Python-Klassen? Welche Regeln gelten für die Klassenvererbung?

Was ist Vererbung von Python-Klassen? Welche Regeln gelten für die Klassenvererbung?

乌拉乌拉~
乌拉乌拉~Original
2018-08-20 14:39:123273Durchsuche

In diesem Artikel erfahren Sie mehr über die Vererbung von Python-Klassen. Für diejenigen, die gerade erst mit der Programmiersprache Python in Kontakt gekommen sind, wissen sie vielleicht weniger über die Vererbung von Python-Klassen, aber das spielt keine Rolle Weiter In diesem Artikel lernen wir die Vererbungsregeln von Python-Klassen kennen. Ich werde die Vererbungsbeispiele von Python-Klassen unten analysieren.

Klassenvererbung

Einer der Hauptvorteile der objektorientierten Programmierung ist die Wiederverwendung von Code, und eine Möglichkeit, diese Wiederverwendung zu erreichen, ist die Vererbung Mechanismus.

Die durch Vererbung erstellte neue Klasse wird als Unterklasse oder abgeleitete Klasse bezeichnet, und die geerbte Klasse wird als Basisklasse, übergeordnete Klasse oder Superklasse bezeichnet.

Vererbungssyntax

class 派生类名(基类名)
    ...

Einige Merkmale der Vererbung in Python:

1. Wenn der Konstruktor der übergeordneten Klasse in der Unterklasse benötigt wird, ist es Es ist erforderlich, den Konstruktor der übergeordneten Klasse explizit aufzurufen oder den Konstruktor der übergeordneten Klasse nicht zu überschreiben. Ausführliche Anweisungen finden Sie unter: Beschreibung des Konstruktors der übergeordneten Klasse zur Vererbung der Python-Unterklasse.

2. Wenn Sie die Methode der Basisklasse aufrufen, müssen Sie das Klassennamenpräfix der Basisklasse hinzufügen und die Parametervariable self mitbringen. Der Unterschied besteht darin, dass Sie beim Aufrufen gewöhnlicher Funktionen in einer Klasse den Parameter self nicht mitbringen müssen.

3. Python sucht immer zuerst nach der Methode des entsprechenden Typs. Wenn die entsprechende Methode nicht gefunden werden kann Wenn Sie eine abgeleitete Klasse verwenden, beginnt die Suche nacheinander in der Basisklasse. (Suchen Sie zuerst in dieser Klasse nach der aufrufenden Methode und dann in der Basisklasse danach, wenn Sie sie nicht finden können.)

Wenn mehr als eine Klasse im Vererbungstupel aufgeführt ist, spricht man von „Mehrfachvererbung“.

Syntax

Deklarationen abgeleiteter Klassen, ähnlich ihren übergeordneten Klassen, mit einer Liste geerbter Basisklassen nach dem Klassennamen, wie folgt:

class SubClassName (ParentClass1[, ParentClass2, ...]):
    ...

Instanzanalyse

# !/usr/bin/python
# -*- coding: UTF-8 -*-
class Parent:  # 定义父类
    parentAttr = 100
    def __init__(self):
        print "调用父类构造函数"
    def parentMethod(self):
        print '调用父类方法'
    def setAttr(self, attr):
        Parent.parentAttr = attr
    def getAttr(self):
        print "父类属性 :", Parent.parentAttr
class Child(Parent):  # 定义子类
    def __init__(self):
        print "调用子类构造方法"
    def childMethod(self):
        print '调用子类方法'
c = Child()  # 实例化子类
c.childMethod()  # 调用子类的方法
c.parentMethod()  # 调用父类方法
c.setAttr(200)  # 再次调用父类的方法 - 设置属性值
c.getAttr()  # 再次调用父类的方法 - 获取属性值

Die obigen Ergebnisse der Codeausführung lauten wie folgt:

调用子类构造方法
调用子类方法
调用父类方法
父类属性 :200

Sie können mehrere Klassen erben

class A:        # 定义类 A
.....
class B:         # 定义类 B
.....
class C(A, B):   # 继承类 A 和 B
.....

Sie können issubclass( ) Oder die zu erkennende isinstance()-Methode.

1.issubclass() – Boolesche Funktion, um zu bestimmen, ob eine Klasse eine Unterklasse oder ein Nachkomme einer anderen Klasse ist, Syntax: issubclass(sub,sup)

2.isinstance(obj, Class) Die boolesche Funktion gibt true zurück, wenn obj ein Instanzobjekt der Class-Klasse oder ein Instanzobjekt einer Class-Unterklasse ist.

Das Obige ist der gesamte Inhalt dieses Artikels. In diesem Artikel wird hauptsächlich das Wissen über die Vererbung von Python-Klassen vorgestellt. Ich hoffe, Sie können die Informationen nutzen, um das oben Gesagte und die angegebenen Beispiele zu verstehen. Ich hoffe, dass das, was ich in diesem Artikel beschrieben habe, für Sie hilfreich ist und Ihnen das Erlernen von Python erleichtert.

Weitere Informationen zu diesem Thema finden Sie in der Spalte Python-Tutorial auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonWas ist Vererbung von Python-Klassen? Welche Regeln gelten für die Klassenvererbung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn