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

标签 python class dynamic performance

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

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

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

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

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

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

最佳答案

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

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

如果你喜欢冒险,你可以尝试用元类做同样的事情,但我会把它留给你研究:-)

关于python - 动态创建类实例的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12674080/

相关文章:

Python列表输入错误

python - 根据其他行和列的多个条件在数据框中创建新列?包括空行? - python / Pandas

将泛型添加到动态集合时的 ​​C# 怪异行为

python - 定义错误消息和错误代码列表

python - 如何舍入一个numpy数组?

python - 如何通过 @property 装饰器使用索引

c++ - 尝试添加到 C++ 中的 LinkedList。获取段错误

html - CSS 类继承自另一个类

python - python中的条件类继承

html - R - 带有输入的网络抓取动态表单