gpt4 book ai didi

python - 如何从 Python 中的名称和类列表实例化许多不同的类

转载 作者:行者123 更新时间:2023-11-28 21:39:39 25 4
gpt4 key购买 nike

我有一个这样的名字列表:

names = ['name_1', 'name_2', ..., 'name_n']

和这样的类列表(类名):

classes = ['class_1', 'class_2', ..., 'class_n']

我可以像这样实例化每个类:

name_1 = class_1()

如何一次实例化所有具有给定名称的类(可能使用 for 循环)?

最佳答案

为什么要存储类的名称而不是类本身?

您可以轻松地存储类而不是类名:

classes = [class1, class2]

然后使用

[cls() for cls in classes]

创建实例。

然而,动态变量名很少是个好主意,为什么不将它们存储在字典中呢?

d = {name: cls() for name, cls in zip(names, classes)}

然后访问 d['name_1'] 以获取 'name_1' 的实例。

如果您无法解决类名列表问题,也可以使用字典解决方案。您只需创建一个字典,将名称映射到实际的类:

name_to_class = {'class_1': class_1, 'class_2': class_2, ...}

d = {name: name_to_class[cls]() for name, cls in zip(names, classes)}

你可以通过使用 globals 或类似的东西来做它更简单,但这是一个非常糟糕的习惯,并且会暴露一切(安全风险)。使用自己的词典通常被认为是更“合适的方式”。

关于python - 如何从 Python 中的名称和类列表实例化许多不同的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46489350/

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