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

jes*_*013 0 python class object

我想按照以下说明自动创建实例对象:

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

list  = ["A","B"]
Run Code Online (Sandbox Code Playgroud)

我想创建以下内容,但会自动进行,即遍历列表并为每个元素创建相同的对象:

A = MyClass(text)
B = MyClass(text)
Run Code Online (Sandbox Code Playgroud)

例如像下面这样不起作用:

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

感谢您的所有帮助!

Joh*_*ooy 6

通常,您不能也不应这样将事情推入您的命名空间。最好是这些实例存储在一个dict或list

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}
Run Code Online (Sandbox Code Playgroud)

现在您的实例是

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

如果您确实要在命名空间中创建一些变量,请执行以下操作:

A, B = (MyClass(text) for x in range(2))
Run Code Online (Sandbox Code Playgroud)

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

不要试图用它exec来实现这一目标。解决问题可能是错误的方法。告诉我们为什么您认为需要这样做。