python - 指定默认参数的惯用方式,其存在/不存在很重要

标签 python default-arguments

我经常看到 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/

相关文章:

python - Pandas 是否支持按列标签读取 Excel 数据?

python - Python匹配贪婪短语搜索。

python - 是否可以将 wx.Panel 定义为 Python 中的类?

python - 如何区分默认参数和提供默认值的参数?

python - pybind11 中的命名默认参数

c++ - 模板专门化中的默认参数参数

python - 在 knn crossval 网格搜索中定义距离参数 (V)(seuclidean/mahalanobis 距离度量)

python - Python 中经过评估/动态生成的函数的源代码

typescript - 确定泛型方法类型的默认参数

python - 解析函数中的默认参数而不执行它们