本文共 2123 字,大约阅读时间需要 7 分钟。
函数可以返回多个值,接收时需按照顺序依次接收即可,变量之间用逗号分隔,支持不同数据类型。
def tets_return(): return 1, "x", y, z = tets_return()print(y)print(z)
示例解释:
函数$tets\_return$返回多个值时,调用者可通过定义的顺序依次接收变量,例如上述代码中$tets\_return$返回1和"x",接收时分别赋值给y和z,print输出结果时则依次显示y和z的值。
注意:
返回值的类型和数量需与接收变量一致,支持混合数据类型。
函数的参数传递方式多种多样,常见方式包括位置参数、关键字参数、缺省参数和不定长参数。
位置参数是按照函数定义参数顺序传递的,传递时需与定义的顺序一致。
def user_info(name, age, gender): print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")# 位置参数 - 默认使用形式user_info('小明', 20, '男') 注意:
传递的参数需与定义的参数顺序一致,且参数个数必须与定义的参数个数一致。
关键字参数允许在函数调用时通过“键=值”的形式传递参数,传递时不需遵循定义的参数顺序。
def user_info(name, age, gender): print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")# 关键字参数user_info(name='小王', age=11, gender='女')# 可以不按照参数的定义顺序传参user_info(age=10, gender='女', name='潇潇') 注意:
在使用位置参数时,位置参数必须在关键字参数之前传递,且关键字参数之间无需特定顺序,但位置参数需与定义顺序一致。
缺省参数允许为函数参数设置默认值,调用时可不传递该参数,默认使用其默认值。
# 缺省参数(默认值)def user_info(name, age, gender="男"): print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")user_info('小天', 13) 注意:
所有位置参数必须在缺省参数之前定义,调用时如果为某个缺省参数传值,则其默认值将被覆盖,否则使用默认值。
不定长参数用于处理不确定参数个数的情况,可以接收任意数量的参数,分为位置不定长和关键字不定长两种形式。
位置不定长参数使用*号定义,接收所有传递的位置参数并返回为元组。
def user_info(*args): print(f"args参数的类型是:{type(args)},内容是:{args}")user_info(1, 2, 3, '小明', '男孩') 注意:
所有传递的位置参数都会被收集为元组,且参数的顺序将与传递顺序一致。
关键字不定长参数使用**号定义,接收所有关键字形式的参数并返回为字典。
def user_info(**kwargs): print(f"args参数的类型是:{type(kwargs)},内容是:{kwargs}")user_info(name='小王', age=11, gender='男孩') 注意:
所有关键字形式的参数都会被收集为字典,键名即为参数名,值为对应的传递值。
匿名函数可以作为其他函数的参数传递,实现对计算逻辑的灵活调用。
# 定义一个函数,接受其它函数输入def test_func(compute): result = compute(1, 2) print(f"结果是:{result}")# 通过lambda匿名函数的形式,将匿名函数作为参数传入def add(x, y): return x + ytest_func(add) 解释:
在$test\_func$函数中,接受一个函数$compute$作为参数,调用$compute$函数进行计算。例如,定义了一个名为$add$的函数用于相加,传递给$test\_func$后,$test\_func$就能根据需要执行不同的计算逻辑。
lambda是Python中用于定义匿名函数的关键字,适用于需要简洁代码的场景。
lambda 传入参数:函数体
代码示例:
# 定义一个函数,接受其它函数输入def test_func(compute): result = compute(1, 2) print(f"结果是:{result}")# 通过lambda匿名函数的形式,将匿名函数作为参数传入test_func(lambda x, y: x + y) 注意:
lambda函数只能定义一行代码,适用于简单的逻辑;如果需要复杂的逻辑,建议使用有名函数。
转载地址:http://jaofk.baihongyu.com/