【发布时间】:2014-05-25 12:38:33
【问题描述】:
我对 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 = {},然后是fruits[item] = Fruit())。 -
+10 到 Martijn 的评论。这是大多数人(包括我)为了改进代码而不得不摆脱的最持久的想法之一。
标签: python variables for-loop instantiation