节约方面的细节,为什么我不在乎......可以不定义类的默认值吗?
是没关系做到这一点:
class IsThisOk(object):
def __init__(self, **kwargs):
for k in kwargs:
setattr(self, k, kwargs[k])
obj = IsThisOk(apples=2 , oranges=2)
,因为我总是走近它为:
class OptionB(object):
apples = None
oranges = None
"""class defaults"""
def __init__(self, **kwargs):
for k in kwargs:
setattr(self,k,kwargs[k])
b = OptionB(apples=2 , oranges=2)
== ===
编辑:
我原本有这个上面,这是我不应该有的东西...
class OptionA(object):
"""set self.k but with class defaults"""
apples = None
oranges = None
def __init__(self, **kwargs):
for k in kwargs:
self.k = kwargs[k]
a = OptionA(apples=2 , oranges=2)
这一切都来自我试图优化一些代码。
我也注意到::
for k in kwargs:
setattr(self, k, kwargs[k])
有点比
for k,v in kwargs.iteritems():
setattr(self, k, v)
你知道那'self.k = ...'只是创建一个属性'k',不无论变量“k”包含什么名字的属性? (这是与使用'setattr'的版本比较。) – delnan
这就是为什么我总是使用setattr ...我匆忙试图优化一些代码。 –