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)
但是初始化的时候,可以不用诶个传属性-值进去。
讲的可能有点乱,不知道表达清楚没有
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.