gpt4 book ai didi

python - 使用变量作为名称实例化一个类

转载 作者:行者123 更新时间:2023-11-30 23:25:25 24 4
gpt4 key购买 nike

我对 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com