【发布时间】:2010-10-29 02:01:49
【问题描述】:
通过“计算”名称定义类属性时,如:
class C(object):
for name in (....):
exec("%s = ..." % (name,...))
是否有与使用 exec 不同的方式来处理众多属性定义? getattr(C, name) 不起作用,因为在类构造期间未定义 C...
【问题讨论】:
-
顺便说一句:您的“编译时”标签与 Python 问题不符。编译在这里并不是一个重要的考虑因素。这是关于定义一个类,而不是代码编译,这是一个正交问题。
-
@Ned:你是对的。我使用了“compile-time”标签,因为示例中的代码只在编译时执行。从技术上讲,它可以延迟执行,并且仍然需要定义类。
标签: python exec class-attributes