1.定义:函数中变量取值的地方;
2.函数中的变量名除了特殊声明为全局变量或本地变量,否则均为局部变量;
3.变量的作用域解析原则:LEGB原则,即:
?变量名引进分为三个作用域进行查找,首先是本地,再是函数内(如果存在),之后才是全局变量,最后是内置作用域(内置作用域:内置函数所在模块的范围);
?在默认情况下,变量名赋值会创建或者改变本地已有的变量;
?全局声明或非本地变量声明会将赋值的变量名映射到模块文件的内部作用域;
LEGB机制:
?Python搜索的四个作用域,最先是本地作用域(L);之后是上一层结构中的def所在作用域(E,函数嵌套才会出现),再是全局作用域(G),最后才是内置作用域(B)
?Python会在第一处能够找到这个变量名的位置停下来,如果python在此次搜索中没有找到该变量,会报错;(即未定义)
原文地址:http://blog.51cto.com/10836356/2094956
时间: 2024-10-13 12:49:56