python多从继承调用父类python继承父类的属性和方法案例
更新时间:2023-10-27Python 多重继承
多重继承是 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()
来调用父类的方法和构造函数,以及直接访问从父类继承而来的属性。这样,我们就可以在保证代码重用性的同时,快速增加新的功能。