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



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





nonlocal语句




默认值的作用域










.__defaults__ 记录当前缺省值


__defaults__ 可以修改










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

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




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


函数的销毁

匿名函数












{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))

浙公网安备 33010602011771号