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