Class A:
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
A(a=1, b=2)
-----------------------分割线------------------
Class A:
def __init__(self, a, b):
self.a = a
self.b = b
data = {'a':1, 'b':2}
A(**data)
第一种方式 __init__ 方法虽然很简单,不用写那么多参数,但是真正初始化实例的时候依然要按键值对方式传入,如果有十几个,就得诶个手写传入。
第二种方式,虽然真正初始化实例时传个字典就可以了,但是 __init__方法事先给定了属性名称,如果有很多,也要诶个写进去。
有没有两者兼得的方法呢?也就是
Class A:
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
但是初始化的时候,可以不用诶个传属性-值进去。
讲的可能有点乱,不知道表达清楚没有