在Python中,__init__()
和 super().__init__()
是用于类的构造函数的特殊方法和函数调用。
1. __init__()
方法:
__init__()
是类的构造函数,在创建类的实例时自动调用。它用于初始化实例的属性和执行其他必要的设置。__init__()
方法在类定义中以双下划线开头和结尾,如def __init__(self, ...):
。self
参数是指向类的实例本身的引用,用于在方法内部访问和操作实例的属性。__init__()
方法可以接受其他参数,以便在实例化时传递初始值。- 以下是一个示例:
class MyClass:
def __init__(self, name):
self.name = name
obj = MyClass("John")
print(obj.name) # 输出: John
2. super().__init__()
函数调用:
super()
是一个用于调用父类方法的内置函数,可以在子类中使用。super().__init__()
用于调用父类的构造函数,以便执行父类的初始化操作。super().__init__()
必须在子类的__init__()
方法内部使用,并传递必要的参数。- 这样可以确保子类实例在初始化时继承父类的属性和行为。
- 以下是一个示例:
class ParentClass: def __init__(self, name): self.name = name class ChildClass(ParentClass): def __init__(self, name, age): super().__init__(name) self.age = age obj = ChildClass("John", 25) print(obj.name) # 输出: John print(obj.age) # 输出: 25
在上述示例中,
ChildClass
是ParentClass
的子类。通过使用super().__init__()
,我们可以在ChildClass
的构造函数中调用ParentClass
的构造函数,并将name
参数传递给它。这样,子类实例在初始化时就同时具有了父类和子类的属性。