Python之函数篇
2020-09-25 10:31:13 11 举报
AI智能生成
Python基础教学
作者其他创作
大纲/内容
函数的结构
def func():
函数体
函数体
函数的执行(调用)
函数名()
空间,取值
空间
局部作用域
局部名称空间
全局作用域
内置名称空间
全局名称空间
加载顺序
内置--> 全局-->局部
取值顺序
就近原则,LEGB原则
global
1,在局部名称空间声明一个全局变量
def func():
global name
name = 'alex'
print(name)
func()
global name
name = 'alex'
print(name)
func()
2, 在局部修改全局变量
nonlocal
1, 不能操作全局变量
2, 内存函数对外层函数的变量进行修改,用到nonlocal
闭包
什么是闭包?
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,函数名可以作为函数的返回值。
函数的三大器
生成器
本质就是迭代器。
唯一的不同:生成器是自己用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
迭代
迭代器
字面意思: 重复的更新迭代的工具
专业角度:内部含有__iter__,并且含有__next__方法
优点:
1,节省内存。
2,惰性机制。
3,不走回头路。
缺点:
操作方法较少,不直观,查询速度较慢。
可迭代对象
字面意思: 重复的更新迭代的数据
专业角度:内部含有__iter__方法
可迭代对象:str,list tuple dict,set range
优点:
直观。
操作方便。
缺点:
占用内存。
转化:iter(iterable)
内置函数
pass
收藏
收藏
0 条评论
下一页