如何在Python中动态创建名称来自列表的实例?

如何在Python中动态创建名称来自列表的实例?,python,class,oop,Python,Class,Oop,我想创建一个类UserDatum的两个实例——一个名为Chris,另一个名为Steve。这是一个简单的例子,IRL我的名字列表要长得多。代码如下: class UserDatum: pass users = ["Chris", "Steve"] for user in users: user = UserDatum() 我想要 print Chris 输出类似“”的内容。我现在得到的是“名称错误:名称‘Chris’未定义” 我对Python还是新手,所以我希望能有人帮我一

我想创建一个类UserDatum的两个实例——一个名为Chris,另一个名为Steve。这是一个简单的例子,IRL我的名字列表要长得多。代码如下:

class UserDatum:
    pass

users = ["Chris", "Steve"]

for user in users:
    user = UserDatum()
我想要

print Chris
输出类似“”的内容。我现在得到的是“名称错误:名称‘Chris’未定义”

我对Python还是新手,所以我希望能有人帮我一把;)
谢谢

我建议做一个
dict
,而不是尝试动态创建变量

>>> user_datums = {name : UserDatum() for name in users}
>>> user_datums
{'Chris': <__main__.UserDatum object at 0x02F32A50>,
 'Steve': <__main__.UserDatum object at 0x02F32A70>}
>>> user_datums['Chris']
<__main__.UserDatum object at 0x02F32A50>

非常感谢您的回复!我有几个问题:1)为什么它比动态创建变量更好?3) 您能否演示如何动态创建变量(如果可能的话)?3) 你能解释一下为什么我的代码不起作用吗?再次感谢!你可以用。你可以再做一次。
class UserDatum:
    def __init__(self, name):
        self.name = name
    def __str__(self):
        return "hi my name is {}".format(self.name)

>>> user_datums = {name : UserDatum(name) for name in users}
>>> print(user_datums['Chris'])
hi my name is Chris