我经常看到 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 永远不是有效的默认值。
关于python - 指定默认参数的惯用方式,其存在/不存在很重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4936550/