Python:如何自动创建实例对象?

时间:2014-02-20 04:02:24

标签: python class object

我想自动创建实例对象,如下所述:

Class MyClass:
     def __init__(self,x):
           self.x = x

list  = ["A","B"]

我想自动创建以下内容,意味着遍历列表并为每个元素创建相同的对象:

A = MyClass(text)
B = MyClass(text)

e.g。如下所示不起作用:

# this doesn't work but explains more what I need
for i in list:
    i = MyClass(text)

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

一般来说,你不能也不应该像这样把东西塞进你的命名空间。最好将这些实例存储在dictlist

Class MyClass:
     def __init__(self,x):
           self.x = x

lst  = ["A","B"]  # don't use list as an identifier

myclasses = {k: MyClass(text) for k in lst}

现在你的实例是

myclasses['A']myclasses['B']等。

如果你真的想在命名空间中创建一些变量:

A, B = (MyClass(text) for x in range(2))

请注意,这意味着您需要明确。您无法从文件或用户输入中获取A,B等。

不要试图用exec来解决这个问题。这可能是解决问题的错误方法。告诉我们为什么你认为你需要这样做。