博客
关于我
python基础篇(7):函数进阶知识点
阅读量:796 次
发布时间: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 使用filetype校验文件
查看>>
Python 使用flush函数将缓冲区数据立即写磁盘
查看>>
python 使用in判断不准确,in不好使
查看>>
Python 使用pandas 进行查询和统计详解
查看>>
Redis 配置文件redis.conf详细解释
查看>>
python网络爬虫(2)——scrapy框架的基础使用
查看>>
python网络爬虫实例教程试读_Python网络爬虫实战教程(全套完整版) - 学途无忧网 - 做技术的王者 - Powered By EduSoho...
查看>>
Python 使用哈希函数用于加密
查看>>
Python 依赖管理的革新——Poetry 深度解析
查看>>
python 保留精度及增加去除数字的千位分隔符(金额化数字)
查看>>
python 倒计时 9,8,7,。。。。。。0
查看>>
Python 入门开发学习笔记之数据的增删改查
查看>>
Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
查看>>
Python 八大排序算法合集
查看>>
python 关于epoll的学习
查看>>
Python 内存管理
查看>>
Python 内嵌函数:它们有什么用处?
查看>>
Python 内置 sum 函数 vs. for 循环性能
查看>>
python 内置slice的用法
查看>>
Python 内置时间模块
查看>>