Python全局变量和局部变量相关知识点
Posted qjyyz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python全局变量和局部变量相关知识点相关的知识,希望对你有一定的参考价值。
#知识点一:
#在函数外面定义的变量叫全局变量
num = 100
def AAA():
‘‘‘
如果在函数中直接修改全局变量,那么会产生异常
如果真的需要修改,可以在函数中进行声明(前面加入global)
‘‘‘
global num
print(num)
num+=2
print(num)
def BBB():
print(num)
AAA() #输出100和102
#调用函数AAA()后全局变量num的值就真的改变了
BBB() #输出102
#知识点二:
‘‘‘
如果全局变量是可变类型,比如列表或字典,那么就可以在函数中直接修改;
而对于不可变类型,比如int,是不能直接在函数中修改的
‘‘‘
nums = [11,22,33]
info = {"name":"xiaowang","age":24}
def test():
print("-"*20)
# nums.append(44) #列表可以在函数中修改
# print(nums)
info[‘name‘] = ‘xiaoli‘
print(info)
def test2():
print("="*20)
# print(nums)
print(info)
test()
test2()
#上述两次打印结果一样
#知识点三:
#为了防止和局部变量名字相同,所以在全局变量前加一个g
# g_a = 200
a = 200
def test3():
print("-"*20)
#a+=1 #这种情况下是直接修改a的值,但由于函数外的a是全局变量不能在函数内修改,所以会报错
a = 100
‘‘‘
注意一:这里可能是重新定义一个新的变量a,也有可能是修改a的值,但由于全局
变量a不能修改,所以此处是重新定义了一个a;
注意二:如果一个局部变量和全局变量名字相同,那么用的是局部变量
‘‘‘
print(a)
def test4():
print("="*20)
print(a)
#print(b) # name ‘b‘ is not defined
#变量的使用顺序是:局部变量->全局变量,如果两者都没有,程序就会报错
test3() #打印100
test4() #打印200
以上是关于Python全局变量和局部变量相关知识点的主要内容,如果未能解决你的问题,请参考以下文章