我对 Python 有点陌生,希望有人能够帮助我解决我遇到的问题。
我需要使用列表中的变量实例化多个对象。假设我有一个包含 2 个项目的列表,[“apple”,“orange”],我想使用它们作为基于 Fruit 类的实例化类的名称,这样我最终得到 2 个对象,apple 和 Orange,它们是水果类。
我尝试这样做,但我似乎无法弄清楚如何使用变量名称作为实例化类的名称。此代码不起作用,但可能会让您了解我想要实现的目标:
class Fruit:
pass
my_list = ["apple", "orange"]
for item in my_list:
item = Fruit()
type(apple)
这不起作用,但我希望这能让您了解我想要实现的目标。我收到此错误:
NameError: name 'apple' is not defined
我希望看到的是:
>>> type(apple)
<type 'instance'>
任何人都可以提供的任何指示将不胜感激:)
谢谢!
最佳答案
动态创建变量通常不是一个好主意。只需使用字典即可:
>>> fruits = {}
>>> for item in my_list:
... fruits[item] = Fruit()
...
>>> [(k, type(v)) for k, v in fruits.items()]
[('orange', <class '__main__.Fruit'>), ('apple', <class '__main__.Fruit'>)]
我想你可以通过使用 globals()
在全局范围内做类似的事情,但我认为这是非常糟糕的做法。
关于python - 使用变量作为名称实例化一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23011197/