如何在python中重新计算/重新初始化类的变量

时间:2018-09-09 18:42:14

标签: python class

我有一些app.py,其中我将执行以下操作:

Trader = Trader(settings)
while True:
    try:
        Trader.analyse_buys()

现在我在trader.py

中具有以下内容
def __init__(self):
    self.since = self.calculate_since()
    ...

def analyse_buys():
   dosomething()

因此analyse_buys()将在循环中运行,而无需重新计算值since

在再次启动该函数之前,再次在__init__函数中重新计算变量的解决方案是什么?

1 个答案:

答案 0 :(得分:2)

如果您仍需要在Trader中保存一些状态,即使用实例化一个新状态

trader = Trader()

不是一种选择,请考虑将需要重新初始化的位移动到另一个函数中,并在__init__()内和其他位置进行调用:

class Trader:
    def __init__(self):
        self.state_that_shouldnt_be_re_prepared = ...
        self.prepare()  # (or whatever is a sensible name)

    def prepare(self):
        # do things


# ...

trader = Trader()
while ...:
    if something:
        trader.prepare()