Home  >  Article  >  Backend Development  >  What is inheritance in Python?

What is inheritance in Python?

WBOY
WBOYOriginal
2023-06-04 08:41:163638browse

Python is an object-oriented programming language, and inheritance is one of the important concepts. Inheritance means that one class can use existing properties and methods in another class, which can reduce code duplication and facilitate code maintenance and updates. Let's learn more about the concept and application of inheritance in Python.

1. Basic concepts
Inheritance in Python is implemented through classes. When defining a subclass, you can specify the parent class by "class subclass name (parent class name):" in the class declaration statement. This allows subclasses to inherit the properties and methods of the parent class.

In Python, when defining a subclass, you can inherit multiple parent classes. This inheritance method is called multiple inheritance. The syntax of multiple inheritance is as follows:

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

When using inheritance, subclasses can create their own unique properties and methods, or they can rewrite or make their own implementations. These modifications to the method with the same name in the parent class are called method overriding.

2. Application Example
Below we use an application example to deeply understand the role of inheritance in Python.

Suppose we want to design a game. This game has multiple characters, each character has its own attributes and methods. Different characters have the same attributes and methods, such as attack power, defense power, etc., and also have their own unique attributes and methods, such as spell damage, combat skills, etc. At this time, we can use inheritance to avoid code duplication and facilitate code maintenance and expansion.

First, we define a basic role class, which contains the properties and methods that all roles have:

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 the basic role class, we define the properties and methods of the role, Including name, level, health value, magic value, attack power and defense power, etc. At the same time, a basic attack method basic_attack is defined, which can calculate damage based on attack power and defense power, and give the enemy character the effect of deducting health points.

Next, we define two subclasses-mage and warrior. They are both a type of role, but have their own unique attributes and methods. Mages have spell attributes and can use some skills with spell attributes, while warriors are better at melee combat and have more powerful normal attacks:

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 the two subclasses of mages and warriors, we inherit The basic role class Role inherits the properties and methods of the role. At the same time, we also defined the unique attributes, spells, and skills of mages and warriors respectively; and rewritten the basic attack methods to give mages and warriors their own special attack methods. In this way, the reuse of characters is achieved while maintaining the characteristics of different characters.

3. Summary
Through the explanation of this article, we have learned about the basic concepts and application examples of inheritance in Python. As an important feature in object-oriented programming, inheritance can avoid code duplication, facilitate code maintenance and code expansion. In actual development, we can use inheritance as needed to achieve efficient code writing.

The above is the detailed content of What is inheritance in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn