python - 在元类机制之前创建动态类字段

标签 python dynamic

我正试图在类似于以下的代码中摆脱 exec:

class A(object):
    for field in ['one', 'two', 'three']:
        exec '%s = "%s value"' % (field, field)

...这样:

>>> A.one
'one value'
>>> A.two
'two value'
>>> A.three
'three value'

编辑:并且还满足主题中提到的要求,即 A.one'one value',在 A 被实例化之前(不要误认为 A() 已实例化)。

有办法吗?

最佳答案

>>> values = 'one', 'two', 'three'
>>> A = type('A', (object,), {i: i + ' value' for i in values})
>>> A.one
'one value'
>>> A.three
'three value'

关于python - 在元类机制之前创建动态类字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3423361/

相关文章:

python - 在 PyQT4 中修改 Matplotlib 图形轴

python - Selenium Webdriver 测试元素可见性的假阴性结果?

python - 使用 python -m 的 sys.argv 行为

python - 派克: 'dynamically' append to qtextedit from function

python - 如何以编程方式将新函数添加到 Python 中的当前作用域?

javascript - 动态改变功能可以吗?

python - 如何在python mysql中防止CREATE查询中的注入(inject)攻击

c# - 将类型传递给泛型方法(嵌套泛型)

go - 如何从变量分配结构的字段名称

python - 如何在 Windows 7 上使用 Python 计算网络使用情况?