博客
关于我
python基础篇(7):函数进阶知识点
阅读量:797 次
发布时间:2023-03-07

本文共 2123 字,大约阅读时间需要 7 分钟。

1 函数多返回值

函数可以返回多个值,接收时需按照顺序依次接收即可,变量之间用逗号分隔,支持不同数据类型。

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的值。

注意:

返回值的类型和数量需与接收变量一致,支持混合数据类型。


2 函数多种传参方式

函数的参数传递方式多种多样,常见方式包括位置参数、关键字参数、缺省参数和不定长参数。

2.1 位置参数

位置参数是按照函数定义参数顺序传递的,传递时需与定义的顺序一致。

def user_info(name, age, gender):    print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")# 位置参数 - 默认使用形式user_info('小明', 20, '男')

注意:

传递的参数需与定义的参数顺序一致,且参数个数必须与定义的参数个数一致。


2.2 关键字参数

关键字参数允许在函数调用时通过“键=值”的形式传递参数,传递时不需遵循定义的参数顺序。

def user_info(name, age, gender):    print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")# 关键字参数user_info(name='小王', age=11, gender='女')# 可以不按照参数的定义顺序传参user_info(age=10, gender='女', name='潇潇')

注意:

在使用位置参数时,位置参数必须在关键字参数之前传递,且关键字参数之间无需特定顺序,但位置参数需与定义顺序一致。


2.3 缺省参数

缺省参数允许为函数参数设置默认值,调用时可不传递该参数,默认使用其默认值。

# 缺省参数(默认值)def user_info(name, age, gender="男"):    print(f"姓名是:{name}, 年龄是:{age}, 性别是:{gender}")user_info('小天', 13)

注意:

所有位置参数必须在缺省参数之前定义,调用时如果为某个缺省参数传值,则其默认值将被覆盖,否则使用默认值。


2.4 不定长参数

不定长参数用于处理不确定参数个数的情况,可以接收任意数量的参数,分为位置不定长和关键字不定长两种形式。

(1)位置不定长参数

位置不定长参数使用*号定义,接收所有传递的位置参数并返回为元组。

def user_info(*args):    print(f"args参数的类型是:{type(args)},内容是:{args}")user_info(1, 2, 3, '小明', '男孩')

注意:

所有传递的位置参数都会被收集为元组,且参数的顺序将与传递顺序一致。

(2)关键字不定长参数

关键字不定长参数使用**号定义,接收所有关键字形式的参数并返回为字典。

def user_info(**kwargs):    print(f"args参数的类型是:{type(kwargs)},内容是:{kwargs}")user_info(name='小王', age=11, gender='男孩')

注意:

所有关键字形式的参数都会被收集为字典,键名即为参数名,值为对应的传递值。


3 匿名函数

3.1 函数作为参数传递

匿名函数可以作为其他函数的参数传递,实现对计算逻辑的灵活调用。

# 定义一个函数,接受其它函数输入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$就能根据需要执行不同的计算逻辑。

3.2 lambda匿名函数

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/

你可能感兴趣的文章
Python 中如何处理异常?
查看>>
Python 中如何实现列表的切片?
查看>>
Python 中如何实现字典的排序?
查看>>
Python 中常用的数据类型及相关操作详解
查看>>
python 中文乱码
查看>>
Python 中生成器与普通函数的区别
查看>>
Python 中的多进程(02/2):进程之间的通信)
查看>>
Python 中的字符串、列表、元组和字典数据类型的特点和使用场景
查看>>
Python 中的属性访问器是什么?如何使用 @property 装饰器?
查看>>
Python 中的带宽限制
查看>>
Python 中的机器学习简介:多项式回归
查看>>
Python 中的注意点_s2
查看>>
Python读取Excel的几种工具包(附Demo)
查看>>
Python 中的生成器是什么?
查看>>
Python 中的离线语音转文本
查看>>
Python读写json文件的简单实现
查看>>
Python 中的线程
查看>>
Python 中的继承机制是什么样的?
查看>>
python读写excel之xlrd&xlwt&xlutils组合
查看>>
Python 中的装饰器是什么?
查看>>