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())为了更好地解释
*argsand的概念
**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}


