python-13 闭包、nonlocal、默认值和LEGB、匿名函数

闭包 #F44336

enter description here
enter description here
enter description here
内部函数用到了外部函数的自由变量,就形成了闭包

enter description here

.
enter description here
enter description here

nonlocal语句

enter description here
enter description here

enter description here
enter description here

默认值的作用域

enter description here
enter description here
enter description here
enter description here
enter description here
enter description here
enter description here
enter description here

enter description here
enter description here
.__defaults__ 记录当前缺省值

enter description here
enter description here
__defaults__ 可以修改

enter description here
enter description here

引用类型缺省值
enter description here

非引用类型缺省值
enter description here

keyword-only参数的缺省值

enter description here

enter description here

enter description here

不可变类型 += ,地址修改,覆盖
enter description here

可变类型 +=,地址不变,就地修改
enter description here

enter description here

enter description here
enter description here

变量名解析原则LEGB #F44336

外层的变量向内层可见(向内层穿透),内层函数的局部变量在外层不可见,内层没有向外找 “就近原则”。

enter description here
enter description here

函数的销毁

enter description here

匿名函数

enter description here

sorted

enter description here

enter description here

enter description here

enter description here

enter description here
enter description here

enter description here

enter description here
enter description here
enter description here

{x for x in (lambda *args: map(lambda x:x+1 ,args))(*range(5))}  # 高阶函数
{x for x in (lambda *args: map(lambda x:(x+1,args) ,args))(*range(5))} 
(lambda x:list(x))(range(5))
posted @ 2022-04-20 18:14  何时&明月  阅读(43)  评论(0)    收藏  举报