首页 > 代码库 > python 变量名解析 LEGB原则

python 变量名解析 LEGB原则

对于一个def语句:

变量名分为三个作用域进行查找:首先是本地,之后是函数内,之后是全局,最后是内置

在默认的情况下,变量名赋值会创建或者改变本地变量

当函数中使用未认证的变量名时,Python就会搜索4个作用域(本地作用域,之后是上一层结  构中def或lambda的本地作用域,之后是全局作用域,最后是内置作用域,

但函数中给一个变量名赋值时,Python总是创建或者改变本地作用域的变量名,除非它已经在那个函数中声明为全局变量

当在函数之外给一个变量名赋值时(也就是一个模块文件的顶层)本地作用域与全局作用域是相同的

 

python 变量名解析 LEGB原则