一、作用域
1、作用域即范围
变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称
- 全局范围(内置名称空间与全局名称空间属于该范围):全局存活,全局有效
- 局部范围(局部名称空间属于该范围):临时存活,局部有效
2、作用域关系是在函数定义阶段就已经固定的,与函数的调用位置无关
3、查看作用域:globals(),locals()
- L (Local) 局部作用域
- E (Enclosing) 闭包函数外的函数中
- G (Global) 全局作用域
- B (Built-in) 内建作用域
以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。
二、匿名函数
即不再使用 def 语句这样标准的形式定义一个函数
lambda [arg1 [,arg2,.....argn]]:expression
比如:
lambda x:x+1
实例1:
name = '那谁' func = lambda x:x+'不爱你' ns = func(name) print(ns)
输出结果:那谁不爱你
实例2:
func = lambda x,y,z:x*2+y*3-z//8 q = func(3,5,64) #q = 3*2+5*3-64//8 = 6+15-8 = 13 print(q)
输出结果:13