python-3.x - 如何使用列表动态创建 Python 类实例?
问题描述
我试图了解如何动态创建 python 类的实例。
下面的简单示例显示了如何创建类实例
class Person:
def __init__(self, name):
self.name = name
emmy = Person("Emmy")
niels = Person("Niels")
print(emmy.name)
print(niels.name)
如果我想遍历一个列表来创建类实例,我该如何动态执行一个命令,就像
emmy = Person("Emmy")
我尝试使用 eval 或 exec 方法动态地执行此操作,以便我可以遍历列表并能够使用列表中的项目名称调用类实例名称。
class Person:
def __init__(self, name):
self.name = name
people = ["Emmy","Niels"]
for item in people:
eval('item = Person(item)')
print(emmy.name)
print(niels.name)
在此先感谢您的任何建议。
解决方案
我找到了一个解决方案,它创建了一个字符串变量以用作 exec 函数的命令。
class Person:
def __init__(self, name):
self.name = name
people = ["Emmy","Niels"]
for item in people:
a = str(item) + ' = Person("' + str(item) + '")'
exec(a)
print(Emmy.name)
print(Niels.name)
推荐阅读
- visual-studio-code - 实时服务器扩展不起作用,我现在该怎么办?我尝试更改扩展设置,但无法修复
- julia - 如何将特定包从基础环境添加到现有的 conda 环境?
- facebook - 用于在群组中发帖的 Facebook GraphAPI
- regex - 匹配单词列表中的单词正则表达式
- r - 如何使用 knitr 和 pandoc 正确设置子文档中的图像路径
- html - 模糊效果不会覆盖整个元素(导航栏)
- inheritance - 无法从继承 NFT 合约的单独合约访问 ERC721 OpenZeppelin NFT
- python - AttributeError:“函数”对象没有属性“提交”
- mongodb - 带有条件的 Arrayof Ids 上的 MongoDB $lookup
- python - PYMQI 与 IBM MQ 客户端 Docker 容器