将可变命名字段添加到Python类

时间:2010-05-05 04:31:38

标签: python

我有一个python类,我需要添加任意数量的任意长列表。我需要添加的列表名称也是任意的。例如,在PHP中,我会这样做:

class MyClass {

}

$c = new MyClass();
$n = "hello"
$c.$n = array(1, 2, 3);

我如何在Python中执行此操作?

我也想知道这是否合理。另一种方法是在类中创建一个列表的字典,但由于列表的数量和大小是任意的,我担心可能会受到性能影响。

如果你想知道我想要完成什么,我正在写一个超轻量级的脚本解释器。解释器遍历人工编写的列表并创建某种字节码。每个函数的字节代码将存储为以“app”类中的函数命名的列表。我很想知道如何做到这一点的任何其他建议。

2 个答案:

答案 0 :(得分:5)

使用setattr

>>> class A(object):
...     pass
... 
>>> a = A()
>>> f = 'field'
>>> setattr(a, f, 42)
>>> a.field
42

答案 1 :(得分:1)

我现在写它是最简单的方法,接下来是配置文件,然后查看优化特定元素。

让我们记住KISS原则。