📅  最后修改于: 2023-12-03 15:29:16.399000             🧑  作者: Mango
在Python中,__init__
是一个特殊方法,用于在创建对象时进行初始化操作。它是一个类的构造函数,当一个对象被创建时便会调用该函数。
我们可以使用如下的方法声明一个类:
class MyClass:
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
在创建对象时,我们可以像下面这样初始化类:
obj = MyClass('value1', 'value2')
在这个例子中,__init__
方法有两个参数 arg1
和 arg2
。我们在对象创建时传入了参数 'value1'
和 'value2'
来对这两个参数进行初始化。在 __init__
方法内部,我们使用 self.arg1
和 self.arg2
来访问这两个参数,这样这两个参数就作为了对象的属性被存储了下来。这样在后续代码中我们可以使用这些属性对对象进行操作。
我们可以在 __init__
方法中为参数提供默认值,以使其成为可选参数。如:
class MyClass:
def __init__(self, arg1, arg2="default"):
self.arg1 = arg1
self.arg2 = arg2
这样,在创建对象时我们可以不用传入 arg2
的值,它会使用默认值 "default"
。
有时候我们希望类有多个初始化方法。在Python中,我们可以使用装饰器来实现这个目的。例如:
class MyClass:
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
@classmethod
def from_dict(cls, d):
return cls(d['arg1'], d['arg2'])
@classmethod
def from_list(cls, lst):
return cls(*lst)
这个例子中,我们除了常规的 __init__
方法外,还定义了两个使用装饰器声明为类方法的初始化方法。这两个方法可以根据不同的输入方式来创建对象。
__init__
方法在一个子类中,我们可以通过 super()
来调用其父类的方法。例如:
class ChildClass(ParentClass):
def __init__(self, arg1, arg2, arg3):
super().__init__(arg1)
self.arg2 = arg2
self.arg3 = arg3
在这个例子中,我们调用了 super().__init__(arg1)
来调用其父类的 __init__
方法。这样,在子类中我们就可以使用 self.arg1
并在父类中将其初始化为一个默认值。
在Python中,__init__
是一个特殊的方法,用于在创建对象时进行初始化操作。我们可以在其中定义类的属性的初始化,以及其他一些我们希望在对象创建时执行的语句。__init__
方法可以带有参数,也可以使用默认值。在子类中,我们可以使用 super()
来调用其父类的 __init__
方法。