函数
2020-04-27 11:12:59 0 举报
AI智能生成
python函数
作者其他创作
大纲/内容
函数的结构
def func():
pass
pass
函数的参数
实参
位置参数,一一对应
关键字参数,一一对应
混合参数,关键字参数一定要在位置参数后面
形参
位置参数,一一对应
默认参数(参数陷阱)可变数据类型
万能参数
仅限关键字参数
顺序:位置参数*args默认参数仅限关键字参数**kwargs
从空间角度研究
名称空间
全局名称空间
全局:(整个py文件)变量与值的对应关系
局部名称空间
当函数执行时,在内存中零时开启的空间,存放变量和值的对应关系,随着函数的结束而消失
内置名称空间
py解释器自带的一些功能
作用域
全局作用域
全局名称空间
内置名称空间
局部作用域
局部名称空间
加载顺序,取值顺序
取值顺序
满足就近原则
加载顺序
内置 全局 局部
global nonlocal
nonlocal
在内层函数对外层函数非全局变量的修改
global
在局部声明一个全局变量
修改全局变量
函数名的应用
函数名就是变量
函数名加()就可以执行
函数名可以作为容器类的元素
函数名可以作为函数的参数
函数名可以作为函数的返回值
生成器
生成器的本职
生成器就是迭代器
生成器的产生方法
1 yield
一个yield对应一个next
yield form
代替了内层for循坏,提高了效率
2 生成器表达式
3 python内部函数返回的
推导式
列表推导式,生成器推导式
循坏模式
[变量(加工后的变量 for 变量 in iterable)]
筛选模式
[变量(加工后的变量 for 变量 in iterable)if 条件]
生成器取值方法
next
for循坏
list 转换
字典推导式
{变量:变量 for 变量 in iterable}
集合推导式
内置函数
常用
min max sorted filter map zip reduce
什么是函数
以功能为导向
节省代码,增强代码的可读性
函数的返回值
给函数的调用者,返回一个值
return单个值
return多个值
没有return或者return没有返回值
结束函数
*的魔性用法
函数的定义时:*表达聚合
函数的执行时:*表达打散
*处理剩余元素
高阶函数
从上至下依次执行
遇到函数的执行等函数执行完毕在向下执行
迭代器
迭代器
字面意思:可以迭代取值的工具
专业角度:内部含有__iter__ ____next__的迭代器
判断迭代器的方法
__iter__ and __next__ in dir(obj)
优点
节省内存,惰性机制
缺点
不直观,操作方法少,不灵活,
可迭代对象
可以重复取值的数据集
内部含有__iter__就是可迭代对象
判断可迭代对象
=__iter__ in dir(obj)
优点
直观,操作方法多,灵活
缺点
占用内存,不可迭代取值(除出索引,按KEY)
用while 循坏 模拟for循坏的内部机制
1 转化迭代器
2 利用while 以及next取值
3 try:except终止循坏
lambda
一句话函数
lambda 形参:返回值
与内置函数配合使用
装饰器
闭包
定义
内存函数对外层函数的非全局变量的引用,一定存在嵌套函数中
作用
保护数据(自由变量)安全 自由变量不会随着函数的结束而消失
如何判断闭包
闭包函数名.__code__co._freevars
闭包的应用
装饰器
标准版装饰器
带参数的装饰器
多个装饰器装饰一个函数
递归
自己调用自己
默认最大递归次数1000
递归根本:逆推,终止条件
0 条评论
下一页