por*_*uod 3 python default-arguments
我经常看到python代码采用默认参数,并且在未指定时具有特殊行为.
如果我想要这样的行为:
def getwrap(dict, key, default = ??):
if ???: # default is specified
return dict.get(key, default)
else:
return dict[key]
Run Code Online (Sandbox Code Playgroud)
如果我要自己动手,我最终会得到类似的东西:
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]
Run Code Online (Sandbox Code Playgroud)
但是当我确实有一个标准时,我不想发明一些愚蠢的东西.在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)
Run Code Online (Sandbox Code Playgroud)
但当然这假设None永远不是有效的默认值.
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |