动态创建类实例的最有效方法是什么?

2024-01-09

我不知道从一开始就会有多少个类实例,所以我需要动态创建它们,但我也想保持代码整洁和可读。

我正在考虑做这样的事情:

names = ['Jon','Bob','Mary']

class Person():
    def __init__(self, name):
        self.name = name

people = {}
for name in names:
    people[name] = Person(name)

它有效,但我似乎找不到任何人在网上这样做的例子(尽管我没有看太多)。我有什么理由应该避免这样做吗?如果是这样,为什么以及更好的选择是什么?


如果您想动态创建类实例,这正是您在代码中所做的,那么我认为您的解决方案看起来非常好,并且是一种Python式的方法(尽管我不得不说当然还有其他方法)。只是为了给您一些思考:您可以使用类注册/存储每个新实例,如下所示:

class Person():
    people={}
    @classmethod
    def create(cls,name):
        person=Person(name)
        cls.people[name]=person
        return person
    def __init__(self, name):
        self.name = name

如果您喜欢冒险,您可以尝试使用元类进行相同的操作,但我会将其留给您的研究:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态创建类实例的最有效方法是什么? 的相关文章

随机推荐