如何在python中动态创建类变量

新手上路,请多包涵

我需要制作一堆类变量,我想通过循环遍历这样的列表来完成:

 vars=('tx','ty','tz') #plus plenty more

class Foo():
    for v in vars:
        setattr(no_idea_what_should_go_here,v,0)

是否可以?我不想将它们作为实例(在 init 中使用 self),而是作为类变量。

原文由 pawel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 437
2 个回答

您可以在创建类后立即运行插入代码:

 class Foo():
     ...

vars=('tx', 'ty', 'tz')  # plus plenty more
for v in vars:
    setattr(Foo, v, 0)

此外,您可以在创建类时动态存储变量:

 class Bar:
    locals()['tx'] = 'texas'

原文由 Raymond Hettinger 发布,翻译遵循 CC BY-SA 3.0 许可协议

晚会但使用 type 类构造函数

 Foo = type("Foo", (), {k: 0 for k in ("tx", "ty", "tz")})

原文由 costrouc 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题