📜  herencia python (1)

📅  最后修改于: 2023-12-03 14:41:42.901000             🧑  作者: Mango

Python中的继承

在Python中,继承是面向对象编程中的核心概念之一。它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。这种机制简化了代码的编写和维护,同时也使得代码具有更高的可重用性和可扩展性。

基本语法

Python中的继承通过在定义子类时在括号中指定父类来实现。例如:

class ParentClass:
    pass

class ChildClass(ParentClass):
    pass

在上述示例中,ChildClass继承了ParentClass的属性和方法。

可以在子类中使用super()函数来调用父类的方法。例如:

class ParentClass:
    
    def __init__(self):
        self.name = 'Parent'
    
    def say_hello(self):
        print('Hello from', self.name)

class ChildClass(ParentClass):
    
    def __init__(self):
        super().__init__()
        self.name = 'Child'
    
    def say_hello(self):
        super().say_hello()
        print('Hello from', self.name)

child = ChildClass()
child.say_hello()

输出结果为:

Hello from Parent
Hello from Child
多重继承

Python还支持多重继承,即一个子类可以继承多个父类的属性和方法。语法如下:

class ParentClass1:
    pass

class ParentClass2:
    pass

class ChildClass(ParentClass1, ParentClass2):
    pass

当一个子类继承了多个父类时,如果这些父类中有相同的方法名,Python会按照方法解析顺序(Method Resolution Order,MRO)调用这些方法。可以使用mro()方法查看MRO。

class ParentClass1:
    
    def say_hello(self):
        print('Hello from ParentClass1')

class ParentClass2:
    
    def say_hello(self):
        print('Hello from ParentClass2')

class ChildClass(ParentClass1, ParentClass2):
    pass

child = ChildClass()
child.say_hello()
print(ChildClass.mro())

输出结果为:

Hello from ParentClass1
[<class '__main__.ChildClass'>, <class '__main__.ParentClass1'>, <class '__main__.ParentClass2'>, <class 'object'>]
总结

Python中的继承是面向对象编程的重要概念之一,它可以帮助程序员简化代码,提高代码的可重用性和可扩展性。我们可以使用基本语法和多重继承来实现继承,同时也可以使用super()函数和mro()方法进行更加复杂的操作。