Я часто вижу код 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'. –