python – 指定存在/不存在的默认参数的惯用方法
作者:互联网
我经常看到python代码采用默认参数,并且在未指定时具有特殊行为.
如果我想要这样的行为:
def getwrap(dict, key, default = ??):
if ???: # default is specified
return dict.get(key, default)
else:
return dict[key]
如果我要自己动手,我最终会得到类似的东西:
class Ham:
__secret = object()
def Cheese(self, key, default = __secret):
if default is self.__secret:
return self.dict.get(key, default)
else:
return self.dict[key]
但是当我确实有一个标准时,我不想发明一些愚蠢的东西.在Python中这样做的惯用方法是什么?
解决方法:
我通常更喜欢
def getwrap(my_dict, my_key, default=None):
if default is None:
return my_dict[my_key]
else:
return my_dict.get(my_key, default)
但当然这假设None永远不是有效的默认值.
标签:default-arguments,python 来源: https://codeday.me/bug/20190730/1579829.html