Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Python局部变量和全局变量区别「建议收藏」,希望能够帮助你!!!。
全局变量:在模块内、在所有函数外面、在class外面,这就是全局变量
局部变量: 在函数内、在class的方法内(未加self修饰),这就是局部变量
在def中,我们可以定义一个局部变量,该变量仅仅在函数体中有生存期,出了这个函数体,变量就不能使用了。
def fun():
a = 10
print(a)
return a + 100
print(fun())
输出:
10
110
也就是说我们在函数体内使用都是局部变量。
APPLY = 100 # 全局变量
def fun():
a = 10 # 局部变量
return a + 100
print(APPLY) # 可以正常输出全局变量的值
#print(a) # 出现错误: name 'a' is not defined 试图在函数体外获取一个局部变量的值不行
输出:
100
表示我们在程序外部是无法直接访问一个局部变量的。
a = None
def fun():
global a # 不能直接对global a = 20 直接赋值,相当于在函数定义的时候进行赋值,但是此时变量还没有初始化,未开辟内存?所以需要分开来写
a = 20
print(a) # None
fun() # 调用fun使用全局变量a
print(a) # 进行了修改了 20
输出:
None
20
参考文章:
1. 莫凡python教程
2. 为什么在python函数定义中不能给全局变量赋值?
3. python变量(全局变量,局部变量,类变量,实例变量)
4. ipython笔记