我有一些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__
函数中重新计算变量的解决方案是什么?
答案 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()