python函数
2023-03-17 21:02:22 22 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
python函数总结
作者其他创作
大纲/内容
def func(): 函数体;
函数的结构
函数名()
函数的执行(调用)
局部名称空间
局部作用域
内置名称空间
全局名称空间
全局作用域
空间
内置 -> 全局 -> 局部
加载顺序
就近原则,LEGB原则
取值顺序
空间与取值
# def func():# global name# name = 'alex'## print(name) # 报错,name未定义# func()
在局部名称空间声明全局变量
在局部修改全局变量
global
不能操作全局变量
内层函数对外层函数变量进行修改,用到nonlocal
nonlocal
存在嵌套函数中
内层函数对外层函数非全局变量的引用
对于你引用的这个自由变量不会在内存中消失,保证数据安全
闭包的好处?
# def wrapper(a):# name = '太白'# def inner():# print(a)# print(name)# return inner# ret = wrapper('烧饼')# print(ret.__code__.co_freevars) # 自由变量
__code__.co_freewars()
什么是闭包?
闭包
减少代码的重复性
增强代码的可读性
什么是函数?
返回None
没有return
与单个值的数据类型相同
return单个值
元组的形式返回
return多个值
return
函数的返回值
从左到右一一对应
位置参数
传值覆盖,不传默认
默认值参数
万能参数
在*args和**kwargs参数之间
仅限关键字参数
形参角度
以一对应
关键字参数
位置参数一定要在关键字参数前面,一一对应
混合参数(既有位置参数,又有关键字参数)
实参
函数的定义:*代表聚合
函数的调用:*代表打散
*的魔性用法
函数的参数
遇到函数名()执行函数
函数的嵌套
函数名就是变量
函数名对应的是函数的内存地址
函数名可以作为容器类类型的元素
函数名可以作为函数的参数传递
函数名可以作为函数的返回值
函数名的应用
本质就是迭代器
生成器是自己用python代码构建的
唯一区别:
函数中含有yield就是生成器
生成器函数
循环模式:(变量(加工后的变量) for 变量 in iterable)
筛选模式:(变量(加工后的变量) for 变量 in iterable if 条件)
生成器表达式
python提供的
生成器的三种产生方式
循环模式:[变量(加工后的变量) for 变量 in iterable]
筛选模式:[变量(加工后的变量) for 变量 in iterable if 条件]
列表推导式
生成器
本质就是闭包,在不改变原函数的代码以及调用方式的前提下,给其增加额外的功能
满足开放封闭元组
应用:登录认证,打印日志等等
装饰器的基本结构
装饰器
字面意思:重复的更新迭代的工具
专业角度:内部含有 __inter__ 方法, 并且含有 __next__ 方法
节省内存
惰性机制
不走回头路
优点
操作方法单一
不直观
查询速度较慢
缺点
迭代器
字面意思:重复的更新迭代的数据
专业角度:内部含有 __inter__ 方法
可迭代对象
直观
操作方便
占用内存
iter(可迭代对象)
转化成迭代器
迭代
函数的三大器
内置函数
函数
0 条评论
回复 删除
下一页