我不知道一开始我会有多少个类实例,所以我需要动态创建它们,但我也希望保持代码整洁和可读。
我正在考虑做这样的事情:
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/