千家信息网

python中变量范围作用域是什么

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,这篇文章将为大家详细讲解有关python中变量范围作用域是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。今天学习python的量范围作用域,并记录
千家信息网最后更新 2024年12月12日python中变量范围作用域是什么

这篇文章将为大家详细讲解有关python中变量范围作用域是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

今天学习python的量范围作用域,并记录学习过程欢迎大家一起交流分享。

新建一个python文件命名为py3_scope.py,在这个文件中进行操作代码编写:

#变量作用域范围#Local局部变量#Enclosing封闭函数变量,闭包中常见#Global 全局变量#Built-in 内置模块#python中查找一个变量准守LEGB规则#优先从L->E->G-B查找#定义全局变量x = 'global x'#定义函数,y为局部变量#函数内有效def test():  y = 'local y'  print(y)#调用局部变量  print(x)#调用全局变量test()    #如果直接打印y会报错,因为是局部变量#print(y)#打印全局变量xprint(x)#使用关键字global将函数内的局部变量变成全局def test():  global x  x = 'local x'  print(x)#调用局部变量#调用函数test()  #local x#打印全局变量xprint(x)#local x#函数中参数为局部变量:def test(z):  print(z)#调用局部变量test('local z')#如果直接打印z会报错,因为是局部变量#print(z)#嵌套函数中封闭函数变量def outer():  x = 'outer x'  def inner():    x = 'inner x'    print(x)
inner() print(x)#调用函数outer()#inner x#outer x#根据LEGB规则#调用函数outer()#先是执行inner()中的x打印#然后执行outer()x的打印#接下来我们注释掉inner中的x变量def outer(): x = 'outer x' def inner(): #x = 'inner x' print(x)
inner() print(x)#调用函数outer()#outer x#outer x#结果是打印两次outer x#调用函数outer()后,首先执行inner()#发现没有local变量,根据LEGB规则,寻找闭包函数中的变量#输出outer()中 x的值#继续调用outer()中x的值,直接打印输出outer x#接下来修改inner()中x的变量为nonlocal#作用域为闭包函数中,不使用全局global修饰#防止影响全局作用域def outer(): x = 'outer x' def inner(): nonlocal x x = 'inner x' print(x)
inner() print(x)#调用函数outer()#inner x#inner x#内置模块变量#首先导入内置模块import builtins#查看内置模块中的函数等信息print(dir(builtins))#定义一个函数min()def min(): pass#这里以min()函数获取最小值为例#m = min([1,2,3,4,5])#print(m)#根据变量作用域的LEGB规则,会先去Local中去找#所以运行会出现错误,需要特别注意

关于python中变量范围作用域是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0