Python学习之函数的作用域

目录

1、局部变量:

2、全局变量:


1、局部变量:

(1)就是在函数内部定义的变量。此时定义的变量只能在函数内部使用,不能在函数外部使用。

(2)不同的函数可以有相同的变量名,不会产生影响。

(3)它的作用是临时保存函数中使用的数据。

def test1():
    a = 100 #局部变量
    print(a)
def test2():
    a = 300 #局部变量
    print(a)
test1()
test2()

运行结果:

  

2、全局变量:

(1)在函数外部定义的变量。

(2)对于不可变类型的全局变量,需要使用global修改全局变量。

(3)对于可变类型的全局变量,不使用global也可以修改全局变量。

a = 1   #全局变量
def test1():
    a = 100 #局部变量
    print(a)
test1()
print(a)

运行结果: 

局部变量和全局变量的优先级:在函数体内,程序会优先寻找本函数内部是否有这个变量,若没有改变量,则再到函数外部寻找该变量。

如果想在函数内部修改不可变的全局变量的值,则需要使用关键字global:

a = 1   #全局变量
def test1():
    global a
    a = 100 #修改后的全局变量
    print(a)
def test2():
    a = 300 #局部变量
    print(a)
test1()
test2()
print(a)

运行结果:

 

上述的全局变量是一个不可变类型,若变成可变类型如列表,想要修改列表的内容,则可不使用关键字global。

l = [1,2,3]
def test1():
    l.append(4)
    print(l)
test1()

 运行结果:

比较可知:全局变量它的本质是不可以修改全局变量的指向,也就是不能将全局变量指向新的数据;对于可变类型,虽然改变了它的值,但是变量的指向并没有发生改变,所以对于一个全局变量,如果它是一个可变类型,不用关键字global依然可以在函数内部对它进行修改。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aaron-ywl

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值