将对象重置为初始状态 Python

Reset Object To Initial State Python

我正在寻找有关重置对象的适当方法的指针(目前正在规划代码)。我目前想到的如下。唯一的问题是还有许多其他方法定义的其他属性在我调用 init 时不会被删除。这对于我构建对象的方式来说不是问题(当模拟方法为 运行 时,所有未在 init 中定义的属性总是重新计算)。但是,我觉得它不干净——我更愿意完全重置为初始化状态,并且不在 init 之外定义任何属性。

class foo:

        def __init__(self, formaat):
                self.format == formaat
                # process format below:
                if formaat == one:
                        self.one = 1
                if formaat == two:
                        self.two = 2
                # ... other parameter imports below - dependent on the value of self.one/self.two

        def reset(self, formaat):
                self.__init__(formaat)

        def simulate(self):
                self.reset(self.format)
                print("doing stuff")

我尝试过的一件事是有一种复制自身的方法。尽管我认为这样做与在 运行 脚本中复制对象并重新分配它之间没有任何区别。

class foo:

    def __init__(self, formaat):
                self.format = formaat
                # process format below:
                if formaat == one:
                        self.one = 1
                if formaat == two:
                        self.two = 2
                # ... other parameter imports below

    def copymyself(self):
        self.copy = copy.deepcopy(foo(self.format)) 

    def simulate(self):
        print("doing stuff")

理想情况下,我希望模拟方法每次都在开始时自行重置。在上面的示例代码中,我必须执行以下 运行 脚本。

a = foo()
# loop the code below
a.copymyself()
a.simulate()
a = a.copy

我更喜欢单行 - a.simulate() 就像使用重置方法的情况一样。

每个新的 运行 都值得一个新的(干净的)对象。