如何正确地重新初始化python对象



例如,我有一个类:

class A:
def __init__(self):
self.a = 10

在实例生命周期中,我将的值更改为20

test = A()
test.a = 20

通过哪种方式我可以正确地重新初始化这个实例,使其成为默认值?

调用__init__的方式好吗?

调用__init__会有效果,但我不建议这样做,因为其他阅读您代码的人可能更难快速理解您要做的事情。我会创建一个reset()函数:

class A:
def __init__(self):
self.a = 10
def reset(self):
self.a = 10

现在,

test = A()
test.a = 20
test.reset() # now test.a = 10

为了避免代码重复,您还可以从__init__:调用reset()函数

class A:
def __init__(self):
self.reset()
def reset(self):
self.a = 10
调用__init__就像用另一种语言第二次调用构造函数。你不能这样做。

您可以创建一个名为reset_variables的方法,该方法将在构造函数中调用,并且您可以调用自己。

最新更新