代码之家  ›  专栏  ›  技术社区  ›  DenCowboy

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

  •  0
  • DenCowboy  · 技术社区  · 6 年前

    我有一些 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 回复  |  直到 6 年前
        1
  •  3
  •   AKX Bryan Oakley    6 年前

    如果你还需要在 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()