数码之家
第二套高阶模板 · 更大气的阅读体验

函数参数使用注意事项:别让小细节拖了代码后腿

发布时间:2025-12-16 01:50:49 阅读:276 次

参数顺序别乱来,调用时容易踩坑

函数的时候,参数的顺序不是随便排的。比如你写了个格式化日期的函数,把年份放在第三个参数,月份放第一个,调用的时候光看数字很容易搞混。时间一长,自己回头看都得愣一下。建议把最常用的、必填的参数往前放,可选的往后靠,别人用起来也顺手。

默认值要设得合理,别图省事留坑

给参数设默认值本是好习惯,但有些人图方便直接用可变对象,比如在 Python 里这么写:

def add_item(item, target_list=[]):
    target_list.append(item)
    return target_list

看着没问题,实际运行你会发现,每次不传列表时,用的都是同一个 list 对象,数据会累积。正确的做法是用 None 判断:

def add_item(item, target_list=None):
    if target_list is None:
        target_list = []
    target_list.append(item)
    return target_list

别把参数当变量乱改

有些语言里,函数参数传的是引用,你在函数内部直接修改它,外面的原始数据也会受影响。比如 JavaScript 传一个对象进去,你一通操作 delete、add,外面再用这个对象时发现少了几个字段,查半天才发现是函数动了手脚。该复制就复制,别偷懒。

命名要有意义,别用 a、b、c 应付

见过有人写函数参数叫 param1、param2,调用的时候完全不知道哪个是干啥的。就像寄快递,地址写“那个楼旁边”,谁看得懂?参数名要能一眼看出用途,比如 user_id、timeout_seconds,清楚明白。

参数太多时考虑用对象或配置项

如果一个函数参数超过四五个,尤其是布尔类型的,像 is_urgent、show_header、auto_save、debug_mode 堆在一起,调用时光看那一串 true、false 根本记不住对应什么。这时候不如把这些打包成一个配置对象:

config = {
    'is_urgent': True,
    'show_header': False,
    'auto_save': True
}
process_data(data, config)

代码清晰多了,也方便以后扩展。

文档里记得写清楚每个参数的用途

哪怕只是给自己看的脚本,加个注释也不费劲。IDE 能自动提示类型和说明,前提是你要写。比如用 JSDoc 或 Python 的 docstring,别人(包括几个月后的你)一看就知道怎么用,不用钻进函数体一行行猜。