python基础(part11)-作用域LEGB

鄙人学习笔记
开发工具:Spyder



作用域LEGB

  • 作用域(变量起作用的范围)

  • 例子1

代码:

#全局变量:当前.py文件内部都可访问
global01 = 100

def fun01():
    
    #局部变量:在方法内部创建的变量,只能在方法内部使用
    l01 = 2
    print(l01)
    
    #在方法内部创建了局部变量global01,没有修改全局变量global01
    global01 = 3
    print(global01)
    

print(global01)
print("---------")
fun01()
print("---------")
print(global01)

结果:

  • 例子2

代码:

#全局变量:当前.py文件内部都可访问
global01 = 100

def fun01():
    
    #局部变量:在方法内部创建的变量,只能在方法内部使用
    l01 = 2
    print(l01)
    
    
    #如果在方法内修改全局变量,则必须使用global关键字声明
    global global01
    global01 = 300

print(global01)
print("---------")
fun01()
print("---------")
print(global01)

结果:

  • 变量名的查找规则

局部变量

①局部变量是定义在函数内部的变量(形参也是局部变量)
②局部变量只能在函数内部使用
③调用函数时才被创建,函数结束后自动销毁

全局变量

①全局变量是定义在函数外部,模块内部的变量。
②在整个模块(py文件)范围内访问
③全局变量在函数内部可读,但是一般不能修改(使用global关键字可修改)。

global语句

  • 作用

①在函数内部修改全局变量。
②在函数内部定义全局变量(全局声明)。

  • 语法
global 变量1, 变量2,...
  • 说明

不能先声明某变量为局部变量,再用global声明其为全局变量。

比如:

发布了116 篇原创文章 · 获赞 22 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/105104862