python函数学习
2021-06-08 15:37:05 0 举报
AI智能生成
内容较为详细,可以应用面试
作者其他创作
大纲/内容
函数的结构<br>
def func():<br> 函数体
函数的执行(调用)<br>
函数名()
空间角度<br>
局部作用域
局部名称空间<br>
全局作用域
全局名称空间
内置名称空间<br>
加载、取值顺序
加载顺序<br>
内置-全局-局部<br>
取值顺序
就近原则、LEGB原则<br>
global<br>
在局部名称空间申明一个全局变量<br>
在局部修改全局变量<br>
nonlocal<br>
不能操作全局变量
内层函数修改外层函数的局部变量<br>
闭包<br>
什么是闭包
在嵌套函数中使用<br>
内层函数对外层函数非全局变量的引用<br>
闭包的好处<br>
引用的自由变量不会在内存中消失,保证数据安全<br>
分支主题
什么是函数<br>
减少代码的重复性<br>
增强了代码的可读性
函数的返回值<br>
没有return<br>
None
return
return单个值<br>
与单个值的数据类型相同<br>
return多个值
元组的形式返回<br>
函数的参数<br>
形参
位置参数
从左到右一一对应
默认参数<br>
传值覆盖,不传默认<br>
万能参数
*args,**kwargs<br>
仅限关键字参数<br>
*args,仅限关键字参数,**kwargs<br>
形参角度顺序:位置参数,*args,默认参数,仅限关键字参数,**kwargs<br>
实参<br>
位置参数<br>
从左到右一一对应
关键字参数<br>
一一对应<br>
混合参数(位置参数、关键字参数)<br>
位置参数一定要再关键字参数前面
*的魔性用法
函数定义时:聚合
函数调用时:打散
自由主题
函数的嵌套<br>
遇到函数名(),调用函数
函数名的应用<br>
函数名就是变量<br>
函数名对应的是函数的内存地址
函数名可以作为容器类类型的元素<br>
函数名可以作为函数的参数传递
函数名可以作为函数的返回值<br>
函数的三大器
迭代器<br>
字面意思:重复的更新迭代的工具<br>
专业角度:含有__iter__和__next__的方法<br>
优点<br>
节省内存
惰性机制
不走回头路
缺点
操作方法少,不直观,查询速度慢
可迭代对象
字面意思:重复的更新迭代的数据<br>
专业角度:含有__iter__的方法<br>
包含str,list,tuple,dict,set,range<br>
优点<br>
直观<br>
操作方便
缺点
占用内存
转化iter<br>
生成器
本质就是迭代器<br>
唯一的不同:生成器是自己用python构建的<br>
三种生成方式<br>
生成器函数
函数中含有yield<br>
生成器表达式
循环模式<br>
(变量 (或加工后的变量)for 变量 in iterable)<br>
筛选模式<br>
(变量 (或加工后的变量)for 变量 in iterable if 条件)<br>
python提供的<br>
列表推导式<br>
循环模式<br>
[变量 (或加工后的变量)for 变量 in iterable]<br>
筛选模式<br>
[变量 (或加工后的变量)for 变量 in iterable if 条件]<br>
装饰器
本质就是闭包<br>
在不改变原函数代码以及调用方式的前提下,给其增加额外的功能<br>
满足开放封闭原则
基本结构<br>
def wrapper(f):<br> def inner(*args, **kwargs):<br> ret = f(*args, **kwargs)<br> return ret<br> return inner<br>
内置函数
收藏
0 条评论
下一页