Python中Trading类内不同用途变量的最佳初始化位置咨询
Python Trading类中三类变量的最佳放置位置
问题背景
我有多个需要初始化的变量:
trading_symbol = "TSLA" # 后续不会变更 trading_period = read_config_json("trading_period") # 仅会在config.json内修改 count = 0 # 会在类内频繁变更请问在Python的Trading类中,
trading_symbol、trading_period和count这三个变量的最佳实践放置位置在哪里?
变量放置方案
每个变量的放置位置由其可变性、作用域决定,具体如下:
1. trading_symbol → 类变量
该变量后续不会变更,属于所有Trading实例共享的固定常量,直接定义在类内部、__init__方法之外作为类变量。这样所有实例无需重复初始化,且能统一访问这个固定值。
2. trading_period → 实例变量(__init__中初始化)
虽然它仅在config.json中修改,但放在__init__中作为实例变量更具扩展性——未来如果需要创建读取不同配置的Trading实例,只需在初始化时传入不同配置即可。如果确定所有实例共用同一配置,也可以改为类变量,但实例变量的灵活性更高。
3. count → 实例变量(__init__中初始化)
该变量会在类内频繁变更,属于每个Trading实例的独立状态数据。必须放在__init__中作为实例变量,避免多个实例之间的状态互相干扰。
完整示例代码
def read_config_json(key): # 模拟配置读取逻辑 return "1D" class Trading: # 类变量:固定不变的交易标的 trading_symbol = "TSLA" def __init__(self): # 实例变量:从配置读取的交易周期 self.trading_period = read_config_json("trading_period") # 实例变量:每个实例独立维护的计数 self.count = 0 def run(self): # 交易逻辑中修改count self.count += 1 print(f"执行交易:标的{self.trading_symbol},周期{self.trading_period},当前计数{self.count}") if __name__ == "__main__": trading = Trading() trading.run() # 输出:执行交易:标的TSLA,周期1D,当前计数1 trading.run() # 输出:执行交易:标的TSLA,周期1D,当前计数2
内容的提问来源于stack exchange,提问作者tung
相关产品推荐
相关产品推荐

