函数是Python中的第一类对象 ,可以把函数赋值给变量,对该变量进行调用,可实现原函数的功能。
(变量——函数——函数式编程)
1. 作用域 / 命名空间
1.1 作用域的定义
作用域:程序创建、访问、改变一个变量时,都是在一个保存该变量的空间内进行,这个空间为命名空间,即作用域。
python作用域是静态的,变量被赋值、创建的位置决定了其被访问的范围,即变量作用域由其所在位置决定。
1.2 作用域的前提
Python中,作用域的概念仅仅存在于:当变量在Module(模块)、Class(类)、def(函数) 中定义的时候
理解这一点至关重要! 对于LEGB原则
准确、快速的理解很有帮助。
再说的直白点,作用域存在于 def和 class之内的缩进代码块 .py后缀Python文件中!
2. LEGB 原则
Python 的变量名解析机制也称为 LEGB 法则:
- local(本地):理解为
function
,即作用域为函数内部 - Enclosed(嵌套)理解为
Enclosing function locals
,即作