我经常看到带有缺省参数的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中这样做的习惯用法是什么?
这并不罕见,至少在Plone中,通常称为_marker。 – 2011-02-08 18:09:23