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

Python:如何自动创建实例对象?,python,class,object,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 lis

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

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)

谢谢你的帮助

一般来说,您不能也不应该像那样将东西塞进名称空间。最好将这些实例存储在
dict
列表中

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
来实现这一点。这可能是解决问题的错误方法。告诉我们您为什么认为需要这样做。

一般来说,您不能也不应该这样将内容塞进名称空间。最好将这些实例存储在
dict
列表中

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
来实现这一点。这可能是解决问题的错误方法。告诉我们你为什么认为你需要这样做。

你能澄清一下你希望获得的确切产出吗?因为以下内容可能就是您要查找的内容:
[MyClass(text)for uu in list]
或类似于此问题的内容@sean I将提供一个senario,假设输入是意外员工的姓名,以及我需要处理数据的每个员工的姓名。因此,我必须为每个员工创建一个类。@您提供的答案将在列表中创建类似的内容,而我希望每个a或B都可以轻松进行。您能否澄清您希望实现的确切输出?因为以下内容可能就是您要查找的内容:
[MyClass(text)for uu in list]
或类似于此问题的内容@sean I将提供一个senario,假设输入是意外员工的姓名,以及我需要处理数据的每个员工的姓名。因此,我必须为每个员工创建一个类。@Tanveer您提供的答案将在列表中创建类似的内容,而我希望每个a或B都可以轻松播放。谢谢您的回答。你的答案看起来不起作用,但我也可以告诉你为什么我需要它,我对这个想法很感兴趣,像你们这些经验丰富的程序员似乎都不正确。他们的回答意味着有另一种方法来解决这个问题,我将告诉你这个问题。所以我要做的是输入一些意外的信息,比如“员工姓名”,对于每一个,我都需要做一些分析,这需要我为每一个创建类,这就是为什么我需要自动创建类对象,因为我不需要固定的输入名。@jesy2013,这正是为什么不应该将它们存储在本地名称空间中的原因。如果名称与关键字、内置项或命名空间中的其他内容冲突,则会出现有趣的bug。最有可能的情况是,您应该使用dict,其键为员工姓名。谢谢。那么,在这种情况下,您建议我如何使用dict?如果输入的只是员工姓名,那么我应该为每个员工分配什么以及如何分配密钥?@jesy2013,如果员工姓名是唯一的,您可以将其用作字典密钥。或者,您可以使用一个列表并将每个实例附加到该列表,假设实例中存储了员工姓名。谢谢您的回答。你的答案看起来不起作用,但我也可以告诉你为什么我需要它,我对这个想法很感兴趣,像你们这些经验丰富的程序员似乎都不正确。他们的回答意味着有另一种方法来解决这个问题,我将告诉你这个问题。所以我要做的是输入一些意外的信息,比如“员工姓名”,对于每一个,我都需要做一些分析,这需要我为每一个创建类,这就是为什么我需要自动创建类对象,因为我不需要固定的输入名。@jesy2013,这正是为什么不应该将它们存储在本地名称空间中的原因。如果名称与关键字、内置项或命名空间中的其他内容冲突,则会出现有趣的bug。最有可能的情况是,您应该使用dict,其键为员工姓名。谢谢。那么,在这种情况下,您建议我如何使用dict?如果输入的只是员工姓名,那么我应该为每个员工分配什么以及如何分配密钥?@jesy2013,如果员工姓名是唯一的,您可以将其用作字典密钥。或者,您可以使用一个列表并将每个实例附加到该列表,假设实例中存储了员工姓名。