📜  继承 init 方法 - Python (1)

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

继承 init 方法 - Python

在Python中,当我们创建一个类时,会默认创建一个初始化方法 __init__()。这个方法是类实例化时第一个被调用的方法,它用于初始化对象的属性。但有时我们需要在子类中使用父类的初始化方法,这就需要继承父类的 __init__() 方法。

继承父类 init 方法的方法

Python中可以通过 super() 函数实现子类继承父类的初始化方法。super() 函数返回的一个代理对象,通过这个代理对象可以调用父类的方法和属性。在子类中调用父类的 __init__() 方法,只需要在子类的 __init__() 方法中调用 super().__init__() 即可。

示例代码
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

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

emp = Employee("Tom", 30, "E001")
print(emp.name)
print(emp.age)
print(emp.emp_id)

运行上述代码,输出结果如下:

Tom
30
E001

代码解释:

  • 父类 Person 定义了 __init__() 方法,用于初始化 nameage 属性。
  • 子类 Employee 继承了父类的 __init__() 方法,并在自己的 __init__() 方法中增加了 emp_id 属性。
  • 子类的 __init__() 方法中,通过 super() 函数调用了父类(Person)的 __init__() 方法,初始化 nameage 属性。
  • 创建了 Employee 类的实例 emp,并打印了 emp 对象的 nameageemp_id 属性。
总结

在Python中,继承父类 __init__() 方法很简单,只需要在子类的 __init__() 方法中调用 super().__init__() 即可。这样做可以减少重复代码,更好地利用代码。