python - 包装函数而不破坏默认参数

标签 python default-arguments

有没有一种方法可以转发函数参数而不隐藏原始调用是否提供可选参数的事实?

def func1(a=x):
    # do stuff

def func2(b=y):
    # pass args to func1 without masking func1 defaults
    return func1(?)

对 func2() 的调用应该导致在不带参数的情况下或至少使用其默认参数(无论它们是什么)调用 func1() 。

以下内容几乎可行,但从根本上我不知道 func2 是否有办法确定其默认值是否被调用。

def func2(b=y):
    # this comes close but what if func2(y) is called?
    if b == y:
        return func1()
    else:
        return func1(b)

最佳答案

确定参数是否保留的常用方法是使用 None 作为默认值。您不太可能使用 None 调用函数,因此它是一个有用的标记。

def func2(b=None):
    if b is None:
        return func1()
    else:
        return func1(b)

关于python - 包装函数而不破坏默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25749094/

相关文章:

python - 打开两个不同的代码行并读取同一个文件

C++ 模板 : override some, 但不是全部,默认参数?

javascript - ES6 获取默认参数/参数

parameters - 有没有办法拥有动态默认参数?

python - Django 休息框架 : Order by Serializer Method Field

python - 是否有一个函数可以在维持我的订单的同时将我的数字四舍五入?

python - 什么 Series 方法取代了 searchsorted?

python - 如何通过 python 保存 Google pdf 文件?

C++ 默认参数错误

c++ - 无法使用默认参数初始化 lambda 成员变量