闭包
定义:在函数内部定义一个函数,并把这个内部函数返回成为闭包
def outer():
print("outer")
def inner():
print("inner")
return inner
自由变量:内部函数inner可以引用外部函数的局部变量和参数,外部函数的变量被内部函数引用后会一直存在,直到内部函数被销毁,这种被内部函数引用的变量称为自由变量
查看变量:
外部函数outer的局部变量,在外部函数调用结束后销毁
内部函数inner的局部变量,在内部函数调用结束后销毁
自由变量,被内部函数引用的外部函数的局部变量,和内部函数对象一起存在
nonlocal关键字:在内部函数中进行赋值操作,会创建局部变量,不会修改外部变量。使用nonlocal关键字可以将变量声明为非局部,此时即可修改外部变量。
Python装饰器
装饰器是一个可调用对象,其参数是一个函数
装饰器的闭包用法:通常情况下,装饰器函数会创建一个内部函数。当调用被装饰的函数时返回内部函数
装饰有参数的函数需要在inner函数中传递一个参数
装饰任意多个参数的函数,使用*args可以捕获任意多个参数
装饰“关键字函数的参数”:函数的参数传递有2种方式,一种是位置传递,一种是名称传递,名称传递又叫作关键字参数。**kwargs可以传递任意多个关键字参数
其他装饰器:
对象方法与类方法
类方法
静态方法
@property装饰器
迭代器与迭代对象
可迭代对象:Python的列表 元组 字符串 也可以用for循环
迭代器:使用iter()函数可以生成迭代器
next方法:用来返回下一个元素。
遍历迭代器:便利迭代器关捕获处理异常
类型判断:使用isinstance方法判断某变量是迭代器还是迭代对象
生成器
不直接生成数据而是存储数据生成的逻辑,每次调用生成器时,生成一个数字
最新评论