You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:25:12