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

class MyClass {

}

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

如何在Python中执行此操作?

我也想知道这是否合理。替代方法是在类中创建列表的字典,但是由于列表的数量和大小是任意的,因此我担心这样做可能会对性能造成影响。

如果您想知道我要完成的工作,那么我正在编写一个超轻量级的脚本解释器。解释器将遍历人工编写的列表,并创建某种字节码。每个功能的字节码将作为一个以该功能命名的列表存储在“app”类中。我很想听到关于如何执行此操作的任何其他建议。

最佳答案

使用setattr

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

关于python - 将可变命名字段添加到Python类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2770629/

10-11 03:38
查看更多