如何创建一个对象,同时将另一个对象的所有关键字及其值传递给它的__init__
?基本上是这样:
class Person():
instances = []
def __init__(self,**kwargs):
self.__dict__.update(**kwargs)
__class__.instances.append(self)
class TemplatePerson():
instances = []
def __init__(self,**kwargs):
self.__dict__.update(**kwargs)
__class__.instances.append(self)
def foo(template):
# I want this function to basically execute what would be:
# Person(name="Alice",surname="Bobbette")
# except dynamically for all the keywords and values the template object could have
pass
foo(TemplatePerson(name="Alice",surname="Bobbette"))
我偶然发现了__dict__
,但不知道如何使用它。重要的是,所有关键字都必须在初始化时传递给新对象,而不要执行以下操作:
Person.name="Alice"
Person.surname="Bobbette
因为我的Person.__init__
很烂;)
预先感谢。