函数
2020-09-14 15:31:46 0 举报
AI智能生成
函数总结
作者其他创作
大纲/内容
函数的结构
def func()
函数体
函数体
函数的执行(调用)
函数名()
空间、取值
空间
局部作用域
局部名称空间
每个函数所拥有的命名空间,记录了函数中定义的所有变量,包括函数的传参、内部定义的局部变量
全局作用域
内置名称空间
存放内置函数:print、input、list、str等
全局名称空间
每个模块加载执行时创建,记录模块中定义的变量,包括模块中定义的函数、类、其他导入的模块、模块级的变量与常量
加载顺序
内置 --> 全局 --> 局部
取值顺序
LEGB原则
就近原则
global
在局部名称空间声明一个全局变量
def func():
global name
name = 'alex'
func()
print(name)
global name
name = 'alex'
func()
print(name)
在局部修改全局变量
nonlocal
不能操作全局变量
内层函数对外层函数的变量进行修改时使用nonlocal
闭包
什么是闭包
存在嵌套函数中
内存函数对外层函数非全局变量的引用
闭包的好处
子主题
什么是函数
减少代码的重复性
增强了代码的可读性
函数的返回值
没有return
返回的是None
return
return 单个值
与单个值的数据类型相同
return 多个值 (1,'alex',[1,2,3])
元组的形式返回
返回值返回给函数的调用者(函数名())
函数的参数
形参
位置参数:
从左至右一一对应
默认参数:
传值覆盖,不传则默认
万能参数:
*args、**kwargs
仅限关键字参数:
*args、仅限关键字参数、**kwargs
形参角度的顺序:位置参数、*args、默认参数、仅限关键字参数、**kwargs
实参
位置参数:从左至右一一对应
关键字参数:
一一对应
混合参数(位置参数、关键字参数)
位置参数在关键字参数前面且一一对应
*的魔性用法
函数的定义:*代表聚合
函数的调用:*代表打散
函数的嵌套
遇到函数名()执行该函数
函数名的应用
函数名就是变量
函数名对应的是函数的内存地址
函数名可以作为容器类类型的元素
函数名可以作为函数的参数传递
函数名可以作为函数的返回值
函数的三大器
生成器:
本质就是迭代器
唯一的不同:生成器是自己用python代码构建的
生成器的三种产生方式:
生成器函数
函数中含有yield即为生成器函数
生成器表达式
循环模式:(变量(加工后的变量)for 变量 in iterable)
筛选模式:(变量(加工后的变量)for 变量 in iterable if 条件)
python内部提供
列表推导式:
循环模式:[ 变量(加工后的变量)for 变量 in iterable ]
筛选模式:[ 变量(加工后的变量)for 变量 in iterable if 条件 ]
装饰器
迭代
迭代器
字面意思:重复的更新迭代的工具
专业角度:内部含有__iter__,并且含有__next__方法
优点:
节省内存
惰性机制
不走回头路
缺点:
操作方法较少、不直观、查询速度慢
可迭代对象
字面意思:重复的更新迭代的工具
专业角度:内部含有__iter__方法
常见类型:str、list、tuple、dict、set、range()、
优点:
直观
操作方便
缺点:
占用内存
转化:iter(iterable)
0 条评论
下一页