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

Python是否有内置支持类式属性赋值的非自定义类变量

有没有Python内置的可动态添加属性的对象?

嘿,这个需求太贴合调试场景了!刚好Python内置就有现成的方案,完全不用自己写自定义类或者实现__getattr__~

最适合的选项就是types.SimpleNamespace——它就是专门为动态存储属性设计的,用法和你想要的完全一致:

from types import SimpleNamespace

a = SimpleNamespace()
a.variable_a = 1
a.variable_b = 2
a.variable_c = 3
print("{}, {}, {}".format(a.variable_a, a.variable_b, a.variable_c))
# 输出: 1, 2, 3

调试的时候它还有额外的便利:直接用vars(a)就能把它转换成字典,快速查看所有属性和对应的值:

print(vars(a))
# 输出: {'variable_a': 1, 'variable_b': 2, 'variable_c': 3}

如果不想多写一行导入代码(比如调试时想快速敲代码),可以直接用一行代码创建实例:

a = __import__('types').SimpleNamespace()

另外提一嘴,你可能见过argparse.Namespace,它的功能和SimpleNamespace几乎一样,也支持动态添加属性,但SimpleNamespace更轻量,就是专门用来干这种临时属性存储的活,比argparse.Namespace更适合你的调试场景。

总结一下:types.SimpleNamespace就是你要找的内置对象,完美匹配你的代码示例,不用自己造轮子,调试时用它临时存变量超顺手!

内容的提问来源于stack exchange,提问作者Rohi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:39:28