您好,欢迎来到尔游网。
搜索
您的当前位置:首页python中变量的作用域问题

python中变量的作用域问题

来源:尔游网

python中变量的作用域

作用域

在python中,变量不需要提前进行预声明,但是,在使用变量之前,我们仍需要对其进行一次赋值操作,在不同位置定义的变量,是有不同的作用范围的,在变量的作用范围之外,使无法对变量进行调用和访问的。
变量的作用域虽然了变量的作用范围,但是同时也形成了变量名的命名空间,有效避免了程序编写过程中的命名污染,大大降低了命名的工作量。

全局变量与局部变量

在python中,变量分为全局变量(global)和局部变量(local),全局变量是指在函数外部声明的变量,即在全局范围内有效,而局部变量则有作用范围的,局部变量通常在函数内部定义,也只能在函数内部进行访问和调用。也就是说,全局变量不论是在函数内部还是在函数外部,都是可以进行访问和调用的,而在局部变量则只能在函数内部访问,在函数外部对函数内部定义的局部变量进行访问时,会出现语法错误,会告诉你访问的变量未定义。

变量作用域的LEGB原则

  • L(local):局部作用域,即在变量声明的函数内部有效
  • E(Enclosing function local):外部嵌套函数的命名空间,通常在闭包形态形态下的作用域,即内部的函数包含了对外部函数作用域中变量的引用
  • G(Global module):函数定义所在模块的作用域
  • B(Buildin):python内建模块的作用域

global关键字

在函数内部可以使用global关键字将局部变量强行转换为全局变量

a = 1
def fun():
	global a # 将a强制转换为全局变量
	a = 2
	# print(a) #进行代码测试

print(a)
fun()
print(a)

globals()方法和locals()方法

  • 查看全局作用域的变量
    • print(globals())
  • 查看局部作用域的变量
    • print(locals())

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务