7-函数
函数基础#
- 定义函数/声明函数
- def f():
- print('hello')
- def f():
- 调用函数
- f()
- 参数
- def f2(x, y):
- 函数的作用
- 封装一个功能(一段代码)
标准函数#
- return
- 1.返回结果
- 2.立刻退出函数
- 3.默认返回None
- return如果不接返回值,可以用来中止函数
函数参数#
- 实参/形参
- 实参:函数调用时括号中的参数
- 形参:函数定义时括号中的参数
- 参数类型
- 位置参数/必需参数
- 默认参数(定义时)
- def f2(x, y=3):
- 关键字参数(调用时)
- def f3(x, y=3, z=4):
- # z 是关键字参数,给关键字z传参
- f3(10, z=30) # 10 3 30
- def f3(x, y=3, z=4):
- 可变参数/不定长参数
- *args: 可以接收任意多个(0~n)位置参数,得到的值是一个元组
- def f4(x, y, args):
- print(x, y, args)
- def f4(x, y, args):
- kwargs:(keyword arguments)可以接收任意多个(0~n)关键字参数,得到的值是一个字典
- def f5(x, y, kwargs):
- print(x, y, kwargs)
- def f5(x, y, kwargs):
- 接收任意参数
- def f7(*args, **kwargs):
- print(args, kwargs)
- def f7(*args, **kwargs):
- *args: 可以接收任意多个(0~n)位置参数,得到的值是一个元组
匿名函数lambda#
- f2 = lambda x: x*x
- person_list.sort(key=lambda x: x['age'], reverse = True)
值传递问题#
-
值类型:简单的赋值,没有关联
-
引用类型:赋值的同时会有关联,深拷贝解决。
- l1 = [1, 3 ,4 , 2]
- l2 = l1
- l2[0] = 100
- print((l1, l2)) # ([100, 3, 4, 2], [100, 3, 4, 2])
-
函数中参数:值类型和引用类型的区别
-
def f(n, m): # n=a, m=b # pass # 空函数 n += 1 m['age'] += 1 print(n, m) a = 10 b = {'age': 10} f(a, b) # 11 {'age': 11} print(a, b) # 10 {'age': 11}
-
作者:lotuslaw
出处:https://www.cnblogs.com/lotuslaw/p/14006843.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧