欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力
对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。
专栏:
文章概述:对Python函数作用域的介绍
关键词:Python函数之作用域
本文目录:
Python函数之作用域
一个程序的所有的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量是在哪里被赋值的。变量的作用域决定了在哪一部分程序可以访问那个特定的变量的名称。Python语言中将不同作用范围的变量分为:局部变量、全局变量。
局部变量:
局部变量是指变量声明在函数内部(包含形式参数),只有在特定的过程和函数中才可以访问的变量。
#测试局部变量
def fun1(x):
y=100
return x+y
#调用函数
print(fun1(200))
#测试局部变量
def fun1(x):
y=100
return x+y
def fun2(x):
return x+y
#调用函数
print(fun1(200))
print(fun2(200))
由上面代码的运行结果得知:局部变量是声明在函数内部的变量,他的作用域在本函数内,出了该函数,其他的函数就访问不到,因此代码中的fun2()方法会报错。
全局变量:
由上面的示例可以看出局部变量不能被另一个函数访问,如果强制访问的话将会报错,为了解决这个变量共享的问题,在这里引进全局变量的概念,全局变量即在函数和类定义之外声明的变量。该变量供所有函数的调用,它的作用范围是整个程序。
#定义全局变量
y=100
def fun1(x):
return x+y
def fun2(x):
return x+y
#调用函数
print(fun1(200))
print(fun2(200))
global关键字:
全局变量的作用范围是所有的函数都可用使用此变量,函数内要改变全局变量的值,使用global关键字。
a = 100 #全局变量
def fun1():
global a #如果要在函数内改变全局变量的值,增加global关键字声明
print(a) #打印全局变量a的值
a = 300 #修改全局变量的值
#调用函数
fun1()
print(a)
就近原则:
如果全局变量的名字和局部变量的名字相同,那么在函数调用变量的时候会采用 “就近原则”
a = 100 #全局变量a
def fun1():
a=10 #局部变量a
print(a) #打印变量a时候采用就近原则,则输出局部变量的a
#调用函数
fun1()