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

Python中如何在仅修改指定参数时保留其余参数的默认值

解决方案

Python原生支持关键字参数传参,完全可以满足只修改指定参数、其余参数走默认值的需求,具体用法如下:

基础用法(对应printWords示例场景)

你不需要传入前面text1的默认值,直接在调用时显式指定要修改的参数名即可:

# 仅修改text2的取值,text1保留默认值"a"
printWords(text2="Banana")
# 运行输出:The text1 is "a" and text2 is "Banana"

关键字参数不受参数定义顺序限制,你可以任意调整传参顺序:

# 调换参数传参顺序也能正常识别
printWords(text2="Banana", text1="Apple")
# 运行输出:The text1 is "Apple" and text2 is "Banana"

针对公司长默认参数老函数的优化方案

方案1:直接指定参数名调用

针对curlSomthing这类带大量长默认参数的老函数,不需要复制任何默认值,直接指定你要修改的参数名传参即可:

# 仅修改someSetting为True,其余两个长文本参数直接用默认值
curlSomthing(someSetting=True)

# 仅修改someText的取值,其余参数用默认值
curlSomthing(someText="自定义的短文本")

方案2:封装常用的自定义调用

如果某些参数你需要频繁修改,可以自行封装一层简化调用,不需要改动原有函数:

# 封装自定义调用,默认修改someSetting为True
def custom_curl(**kwargs):
    default_params = {
        "someSetting": True
    }
    # 合并你传入的参数,覆盖默认的自定义参数
    default_params.update(kwargs)
    return curlSomthing(**default_params)

# 后续直接调用自定义函数即可
custom_curl() # someSetting为True,其余用原函数默认值
custom_curl(someText="自定义文本") # 同时修改someText和someSetting

方案3:快速查询参数名

如果记不清老函数的参数名,可以用Python标准库inspect快速查看,不需要翻找源码:

import inspect
# 打印函数的所有参数和对应默认值
print(inspect.signature(curlSomthing))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:39:03