写代码的时候,总会遇到一些函数需要传参,但有些参数其实大部分时间都用同一个值。每次都手动填写,不仅麻烦还容易出错。这时候,函数调用默认参数就派上用场了。
什么是默认参数?
简单来说,默认参数就是在定义函数时给参数设置一个“备用值”。如果调用函数时没有传这个参数,就会自动使用这个备用值。
比如你经常要打印用户信息,默认情况下希望显示“普通用户”身份:
def show_user(name, role="普通用户"):
print(f"用户名:{name},身份:{role}")
show_user("小明")
# 输出:用户名:小明,身份:普通用户
show_user("管理员老李", "管理员")
# 输出:用户名:管理员老李,身份:管理员
实际应用场景
装机过程中,我们常会写脚本自动配置系统环境。比如设置网络,大多数时候是 DHCP 自动获取,只有少数情况需要手动指定 IP。
def setup_network(ip="dhcp", gateway=None):
if ip == "dhcp":
print("启用DHCP自动获取IP")
else:
print(f"设置静态IP:{ip}")
if gateway:
print(f"网关设置为:{gateway}")
setup_network()
# 启用DHCP自动获取IP
setup_network("192.168.1.100", "192.168.1.1")
# 设置静态IP:192.168.1.100,网关设置为:192.168.1.1
这样一来,大多数机器装系统时直接运行 setup_network() 就行,不用每次填一堆参数,省事又不容易错。
注意事项
默认参数虽然方便,但别乱用可变对象,比如列表或字典。下面这种写法容易踩坑:
def add_item(item, my_list=[]):
my_list.append(item)
return my_list
因为默认列表只创建一次,多次调用会共用同一个列表,导致数据累积。正确的做法是:
def add_item(item, my_list=None):
if my_list is None:
my_list = []
my_list.append(item)
return my_list
这样每次调用都能拿到一个干净的新列表。
在写自动化脚本或配置工具时,合理使用默认参数,能让你的代码更简洁、更易用,装机效率也能提上去。