Python局部变量和全局变量区别

Python学习 专栏收录该内容
24 篇文章 0 订阅

1. 定义

全局变量:在模块内、在所有函数外面、在class外面,这就是全局变量
局部变量: 在函数内、在class的方法内(未加self修饰),这就是局部变量

2. 如何使用:

在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笔记

  • 4
    点赞
  • 0
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值