其实None对于“魔法”价值观来说要好得多:class Cheese():
def __init__(self, num_holes = None):
if num_holes is None:
...
现在,如果您想完全自由地添加更多参数:class Cheese():
def __init__(self, *args, **kwargs):
#args -- tuple of anonymous arguments
#kwargs -- dictionary of named arguments
self.num_holes = kwargs.get('num_holes',random_holes())
更好地解释*args和**kwargs(您实际上可以更改这些名称):def f(*args, **kwargs):
print 'args: ', args, ' kwargs: ', kwargs>>> f('a')args: ('a',) kwargs: {}>>> f(ar='a')args: () kwargs:
{'ar': 'a'}>>> f(1,2,param=3)args: (1, 2) kwargs: {'param': 3}