变量的作用域指的是程序代码可以访问该变量的范围。它主要分为全局变量和局部变量。
全局变量
全局变量指的是函数体外定义的变量,可以作用于函数内、外。(可变范围大,不利于维护)
a = 111 # 全局变量
def fun():
print('我在函数内部,',a)
print(a)
fun()
如果在函数内部和函数外部操作同名变量,Python 会将他们看作是两个单独变量,一个在函数外部可用,一个在函数内部可用:
a = 100 # 全局变量
def fun():
a = 200 # 局部变量
print(f'我是在函数内部定义的a:{a}')
# 在函数内部打印的是局部变量a
fun() # 200
# 打印的是全局变量a
print(a) # 100
注意:
局部变量
在函数内部定义并使用的变量,只能在函数内部使用。如果局部变量在函数外部使用,它就超出了作用域,会抛出异常 NameError。
局部变量在函数内部,用于临时保存数据,当函数调用完成后,Python 解释器就将变量回收销毁了。
不同的函数中,可以定义同名的局部变量,之间不会产生影响。
局部变量的作用
用于临时保存在函数内部需要使用的数据。
def fun_add(a,b): # a,b是函数的形参,作用范围也是函数内部,相当于局部变量
sum1 = a + b # sum在函数内部定义的,称为局部变量
print(sum1)
print(sum1) # NameError: name 'sum1' is not defined. Did you mean: 'sum'?
如何将局部变量变成全局变量 —-> global关键字
如果想要把一个局部变量修改成全局变量,可以使用global关键字。
例如在函数中定义一个变量 aa = 200,在函数外无法访问,会报错,如果想要将局部变量 aa 变成全局变量,让我们可以在函数外部访问它,可以使用 global 关键字。
# def fun():
# aa = 200
# 无法访问局部变量
# print(aa) # NameError: name 'aa' is not defined. Did you mean: 'a'?
# 将上面代码修改一下
def fun():
global aa # 使用global关键字修饰的变量会变成全局变量
aa = 200
# 调用fun,global将局部变量修改为全局变量
fun()
print(aa) # 200
对于一个全局变量,在函数内如果给它重新赋值,也只是声明了一个同名的局部变量,是不会影响全局变量的值的。但我们可以使用global关键字在函数内部修改全局变量的值:
a = 100 # 全局变量
def fun():
global a # 将a声明为全局变量
a = 200 # 给变量a重新赋值
# 打印的全局变量a
print(a) # 100
# 调用fun,修改了全局变量的值
fun()
# 打印的是修改后的全局变量a
print(a) # 200
© 版权声明
本站网络名称:
尤尤博客
本站永久网址:
https://www.yxfseo.cn
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,请在24H内删除。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
暂无评论内容