函数
2020-09-12 20:52:52 21 举报
AI智能生成
python函数逻辑总结
作者其他创作
大纲/内容
函数的结构
def func():
函数的执行(调用)
函数名()
空间与取值
空间
局部作用域
局部名称空间
全局作用域
全局名称空间
内置名称空间
加载顺序
内置->全局->局部
取值顺序
就近原则即LEGB原则
global
1.在局部名称空间声明一个全局变量
def func():
global name
name = 'alex'
print(name)
func()
print(name)
global name
name = 'alex'
print(name)
func()
print(name)
2.在局部修改全局变量
nonlocal
1.不能操作全局变量
2.对外层函数的变量进性修改
闭包
什么是闭包?
1.存在嵌套函数中。
2.内存函数对外层函数非全局变量的使用。
闭包的好处
对于你 引用的自由变量不会在内存中消失,保证数据的安全。
什么是函数?
减少代码的重复性。
增强代码的可读性。
函数的返回值
没有return
返回None
return
return单个值
与单个值的数据类型相同
return多个值1,'alex',[1,2,3]
(1,'alex',[1,2,3])
函数的参数
形参
1.位置参数:从左至右一一对应
2.默认参数:传值覆盖,不传则默认。
3.万能参数:*args, **kwargs
4.仅限关键字参数:*args,仅限关键字参数,**kwargs
形参角度的顺序:位置参数,*args,默认参数,仅限关键字参数,**kwargs
实参
1.位置参数:从左至右一一对应
2.关键字参数:一一对应
3.混合参数(位置参数,关键字参数):位置参数一定要在前面,一一对应。
* 的魔性用法
函数的定义:*代表聚合。
函数的执行:*代表打散。
函数的嵌套
遇到函数名()执行该函数
函数名的应用
1.函数名就是变量。
2.函数名对应的是函数的内存地址。
3.函数名可以作为容器类型的元素。
4.函数名可以作为函数的参数传递。
5.函数名可以作为函数的返回值。
函数的三大器
迭代
迭代器
字面意思:重复的更新迭代的工具。
专业角度:内部含有__iter__并且含有__next__方法。
优点:
1.节省内存。
2.惰性机制。
3.不走回头路。
缺点:
操作方法较少,不直观,查询速度较慢。
可迭代对象
字面意思:重复的更新迭代的数据。
专业角度:内部含有__iter__方法。
可迭代对象:str list tuple dict set range
优点:
直观。
操作方便。
缺点:
占用内存。
转化:iter(iterable).
生成器
本质就是迭代器。
唯一的不同:生成器是自己用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
内置函数
pass
0 条评论
下一页