Python - 使用list创建新变量

时间:2011-05-01 07:27:13

标签: python list variables

我想从列表中创建新变量。

例如:

mylist=[A,B,C]

我想从中创建以下变量:

self.varA
self.varB
self.varC

如何在循环中创建这些新变量?

2 个答案:

答案 0 :(得分:6)

mylist=['A','B','C']
for name in mylist:
    setattr(self, name, None)

但这几乎总是一个坏主意,价值观应该是如下:

self.v = {}
for name in mylist:
    self.v[name] = None

答案 1 :(得分:0)

你的问题忽略了变量需要价值的事实......谁将提供什么价值?以下是一个可能澄清问题的解决方案:

使用这种方法,构造函数的调用者可以使用dict或关键字args来传递名称和值。

>>> class X(object):
...     def __init__(self, **kwargs):
...         for k in kwargs:
...             setattr(self, k, kwargs[k])
...

# using a dict

>>> kandv = dict([('foo', 'bar'), ('magic', 42), ('nix', None)])
>>> print X(**kandv).__dict__
{'nix': None, 'foo': 'bar', 'magic': 42}

# using keyword args

>>> print X(foo='bar', magic=42, nix=None).__dict__
{'nix': None, 'foo': 'bar', 'magic': 42}