c语言编程笔录

首页 >   > 笔记大全

笔记大全

python多从继承调用父类python继承父类的属性和方法案例

更新时间:2023-10-27

Python 多重继承

多重继承是 Python 一个重要的特性,它让一个类可以同时继承多个基类,这样这个类就可以拥有多个基类的特性。可以通过在类定义时在括号内指定多个父类来实现多重继承。

class Parent1:
    def func1(self):
        print("Parent1's Function 1")

class Parent2:
    def func2(self):
        print("Parent2's Function 2")

class Child(Parent1, Parent2):
    def func3(self):
        print("Child's Function 3")

c = Child()
c.func1()  # 输出 "Parent1's Function 1"
c.func2()  # 输出 "Parent2's Function 2"
c.func3()  # 输出 "Child's Function 3"

在上面的代码中,我们定义了 3 个类,Parent1、Parent2 和 Child。Child 类继承自 Parent1 和 Parent2 类,因此它拥有了这两个类的所有特性。我们通过创建 Child 的实例 c 来测试它的方法。

调用父类方法

在子类中,我们可以通过调用父类方法来重载父类方法或者增加新的行为。在 Python 中,我们可以使用 super() 来调用父类的方法。其语法为:super(child_class, child_instance).method(),其中 child_class 是指当前子类的类名,child_instance 是指当前子类的一个实例。

class Parent:
    def func(self):
        print("Parent's Function")

class Child(Parent):
    def func(self):
        super(Child, self).func()
        print("Child's Function")

c = Child()
c.func()

在上面的代码中,我们定义了 Parent 和 Child 两个类。Child 继承自 Parent,这里我们重载了 Parent 中的 func 方法,并在其中使用了 super() 来调用父类中的同名方法。执行该程序,可以看到输出:

Parent's Function
Child's Function

继承父类的属性

与方法一样,子类可以继承父类的属性。子类可以直接访问从父类继承而来的属性,就像它们是定义在子类内部一样。在这个例子中,我们定义了一个 Person 类,它有一个 name 属性。然后我们创建了一个 Employee 类,继承自 Person,并添加了一些新的属性。Employee 类在初始化时,通过调用 super() 来调用父类构造函数,并初始化了 name 属性。

class Person:
    def __init__(self, name):
        self.name = name

class Employee(Person):
    def __init__(self, name, salary):
        super(Employee, self).__init__(name)
        self.salary = salary

e = Employee("Tom", 5000)
print("Name: ", e.name)
print("Salary: ", e.salary)

运行该程序,我们可以看到输出:

Name:  Tom
Salary:  5000

总结

Python 多重继承的特性为我们提供了更灵活的代码架构,允许我们更加方便地在现有类的基础上添加新的功能。我们可以使用 super() 来调用父类的方法和构造函数,以及直接访问从父类继承而来的属性。这样,我们就可以在保证代码重用性的同时,快速增加新的功能。