【发布时间】:2017-11-09 18:54:36
【问题描述】:
假设我想生成一个类的多个实例(例如 Car 类)。
我有需要在列表中使用的变量名称:
cars = ['Mustang', 'Camaro', 'Challenger']
如何遍历cars 列表并创建Car 类的实例,变量名称是cars 列表中的字符串。
基本上做同样的事情:
Mustang = Car()
Camaro = Car()
Challenger = Car()
我意识到动态创建变量是不受欢迎的,但是我正在使用它为研究中的每个参与者创建一个类的实例,因此我将他们的 ID 号放在一个列表中,并希望将此 ID 号用作变量类实例的名称。
【问题讨论】:
-
这不仅仅是“皱眉”,它是一种反模式。这也没有任何意义。你几乎是在说“我知道这是一个糟糕的设计,我想放弃它”,因为......?
-
globals()["Mustang"] = Car()(带有所有感叹号)。 -
变量名不重要,为什么不直接用dict呢?无论如何,在某种程度上,它是一样的。只需
cars = {}然后cars['Mustang'] = Car()等等。那么你不必做任何奇怪的事情globals。一旦存在具有这些名称的变量,您将如何引用它们?