You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何编写无操作的默认回调函数参数?

问题:Python中如何给回调函数设置“无操作”默认值?

我有时需要向my_function传入回调函数作为参数,但希望默认行为是不执行任何操作。我曾尝试编写如下无效代码:

def my_function(args, callback_function=pass):
    # do something
    callback_function()

但这无法运行,我想到的可行方案是:

def do_nothing():
    pass

def my_function(args, callback_function=do_nothing):
    # do something
    callback_function()

有没有更简洁的实现方式,类似第一个示例那样?


更简洁的实现方式

用lambda表达式直接作为默认参数

这是最贴合你需求的简洁写法,不用单独定义空函数,直接在参数里写lambda: None就行:

def my_function(args, callback_function=lambda: None):
    # do something
    callback_function()

这个lambda本质就是一个不执行任何操作、返回None的空函数,完全满足默认无操作的要求,和你最初想直接写pass的思路一致,只是语法上用lambda替代了。

可选方案:默认值设为None,调用前判断

如果需要区分“没传回调”和“传了空回调”的场景,可以这么写:

def my_function(args, callback_function=None):
    # do something
    if callback_function is not None:
        callback_function()

这种写法更灵活,后续如果要修改默认行为,直接在判断逻辑里调整即可,不过代码量比lambda方式稍多一点。


内容的提问来源于stack exchange,提问作者Pedro Contipelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:42:05