在for循环中构造变量

问题描述 投票:0回答:2

假设我想创建一个类的很多实例但是不想为每个实例编写变量名。

我想要的是:

value1 = class(value1)
value2 = class(value2)
.
.
. 

我的想法是:

list = ['One','Two','Three']

for value in list:
    value = class(value)

结果不是我想要的。 Python创建变量'value'并使用列表的值覆盖它。

我很抱歉提出这样一个基本问题,但我不知道如何处理这个问题。

python oop for-loop instance
2个回答
1
投票

首先,请注意,不应将list用作变量名,因为它本身是作为关键字保留的。然后,你可以有另一个列表,instanceList让我们说,你将在其中追加每个新创建的类的实例:

myList = ['One','Two','Three']
instanceList = []

for value in myList:
    instanceList.append(class(value))

1
投票

您可以使用列表推导从值列表构建类实例列表:

class A:
    def __init__(self, value):
        self.value = value

values = ['One','Two','Three']
instances = [A(v) for v in values]
>>> print(list(o.value for o in instances))
['One', 'Two', 'Three']
© www.soinside.com 2019 - 2024. All rights reserved.