Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist Vererbung in Python?

Was ist Vererbung in Python?

WBOY
WBOYOriginal
2023-06-04 08:41:163652Durchsuche

Python ist eine objektorientierte Programmiersprache und Vererbung ist eines der wichtigen Konzepte. Vererbung bedeutet, dass eine Klasse vorhandene Eigenschaften und Methoden einer anderen Klasse verwenden kann, was die Codeduplizierung reduzieren und die Codepflege und -aktualisierungen erleichtern kann. Erfahren Sie mehr über das Konzept und die Anwendung der Vererbung in Python.

1. Grundkonzepte
Vererbung wird in Python durch Klassen implementiert. Beim Definieren einer Unterklasse können Sie die übergeordnete Klasse durch „Klassenunterklassenname (Name der übergeordneten Klasse)“ in der Klassendeklarationsanweisung angeben. Dadurch können Unterklassen die Eigenschaften und Methoden der übergeordneten Klasse erben.

In Python können Sie beim Definieren einer Unterklasse mehrere übergeordnete Klassen erben. Diese Vererbungsmethode wird als Mehrfachvererbung bezeichnet. Die Syntax der Mehrfachvererbung lautet wie folgt:

class 子类名(父类1,父类2,…,父类n):
    ……

Bei Verwendung der Vererbung können Unterklassen ihre eigenen einzigartigen Eigenschaften und Methoden erstellen oder sie können ihre eigenen Implementierungen überschreiben oder durchführen. Diese Änderungen an der gleichnamigen Methode in der übergeordneten Klasse werden als Methodenüberschreibung bezeichnet.

2. Anwendungsbeispiel
Im Folgenden verwenden wir ein Anwendungsbeispiel, um die Rolle der Vererbung in Python tiefgreifend zu verstehen.

Angenommen, wir möchten ein Spiel mit mehreren Charakteren entwerfen, wobei jeder Charakter seine eigenen Eigenschaften und Methoden hat. Verschiedene Charaktere haben die gleichen Attribute und Methoden wie Angriffskraft, Verteidigungskraft usw. und auch ihre eigenen einzigartigen Attribute und Methoden wie Zauberschaden, Kampffähigkeiten usw. Zu diesem Zeitpunkt können wir die Vererbung verwenden, um Codeduplizierungen zu vermeiden und die Wartung und Erweiterung des Codes zu erleichtern.

Zuerst definieren wir eine grundlegende Charakterklasse, die Attribute und Methoden enthält, die alle Charaktere haben:

class Role:
    def __init__(self, name, level, hp, mp, attack, defense):
        self.name = name
        self.level = level
        self.hp = hp
        self.mp = mp
        self.attack = attack
        self.defense = defense

    def basic_attack(self, enemy):
        hurt = self.attack - enemy.defense
        if hurt > 0:
            enemy.hp -= hurt
            print(self.name, '攻击', enemy.name, '造成了', hurt, '点伤害')
        else:
            print(enemy.name, '防御很强,', self.name, '的攻击没有起到作用')

In der grundlegenden Charakterklasse definieren wir die Attribute und Methoden des Charakters, einschließlich Name, Level, Gesundheit, magischer Wert, Angriffskraft, Verteidigungskraft usw. Gleichzeitig wird eine grundlegende Angriffsmethode basic_attack definiert, die den Schaden basierend auf Angriffskraft und Verteidigungskraft berechnen und dem gegnerischen Charakter den Effekt geben kann, Gesundheitspunkte abzuziehen.

Als nächstes definieren wir zwei Unterklassen – Magier und Krieger. Sie sind beide eine Art Rolle, haben aber ihre eigenen einzigartigen Eigenschaften und Methoden. Magier haben Zauberattribute und können einige Fertigkeiten mit Zauberattributen nutzen, während Krieger besser im Nahkampf sind und stärkere normale Angriffe haben:

class Mage(Role):
    def __init__(self, name, level, hp, mp, attack, defense, spell_power):
        super().__init__(name, level, hp, mp, attack, defense)
        self.spell_power = spell_power

    def fireball(self, enemy):
        hurt = self.spell_power - enemy.defense
        if hurt > 0:
            enemy.hp -= hurt
            print(self.name, '对', enemy.name, '发动了火球术,造成了', hurt, '点法术伤害')
        else:
            print(enemy.name, '防御很强,', self.name, '的火球术没有起到作用')


class Warrior(Role):
    def __init__(self, name, level, hp, mp, attack, defense, skill):
        super().__init__(name, level, hp, mp, attack, defense)
        self.skill = skill

    def slash(self, enemy):
        hurt = self.attack + self.skill - enemy.defense
        if hurt > 0:
            enemy.hp -= hurt
            print(self.name, '对', enemy.name, '发动了斩击,造成了', hurt, '点伤害')
        else:
            print(enemy.name, '防御很强,', self.name, '的斩击没有起到作用')

In den beiden Unterkategorien von Magiern und Kriegern erben wir die Grundrollenklasse Rolle Zu erben die Eigenschaften und Methoden der Rolle. Gleichzeitig haben wir auch die einzigartigen Attribute, Zauber und Fähigkeiten von Magiern und Kriegern definiert und die grundlegenden Angriffsmethoden neu geschrieben, um Magiern und Kriegern ihre eigenen speziellen Angriffsmethoden zu geben. Auf diese Weise wird die Wiederverwendung von Zeichen erreicht und gleichzeitig die Eigenschaften verschiedener Zeichen beibehalten.

3. Zusammenfassung
Durch die Erläuterung dieses Artikels haben wir die grundlegenden Konzepte und Anwendungsbeispiele der Vererbung in Python kennengelernt. Als wichtige Funktion der objektorientierten Programmierung kann die Vererbung Codeduplizierung vermeiden und die Codepflege und Codeerweiterung erleichtern. In der tatsächlichen Entwicklung können wir die Vererbung nach Bedarf verwenden, um ein effizientes Codeschreiben zu erreichen.

Das obige ist der detaillierte Inhalt vonWas ist Vererbung in Python?. 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