python中函数有自己的作用,if语句没有作用域。
函数的作用域分为以下四种:
L:local,局部作用域,即函数中定义的变量
E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的
G:global ,全局变量,就是模块级别定义的变量
B:built-in,系统固定模块里面的变量,比如int。
搜索变量的优先级顺序:作用域局部>外层作用域>当前模块中的全局>python内置作用域。也就是LEGB
注意:
global和nonlocal
global关键字用来在函数或其他局部作用域中使用全局变量。但是如果不修改全局变量也可以不使用
global关键字。
nonlocal声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量。
原文地址:https://www.cnblogs.com/zd37/p/11562109.html
时间: 2024-10-13 12:49:58