What: Python变量作用域?

**变量?**就是变量在代码里面的作用范围

L: Local 局部作用域
E: Enclosing 闭包函数外的函数中
G :Global 全局作用域
B :built in 内建作用域
一个文件模块里面的是全局变量,函数里面也能用这个全局的
函数内部的是局部变量

问:全局和局部重名的时候用谁?
答:就近原则,会优先使用局部变量
趣味答:你们班有个倒霉孩子叫做小明,学校有个倒霉孩子跟你班同学重名,当叫到小明,你会想到谁?肯定是你们班的那个嘛。

问:我这样操作了, 为什么会报错?

s=0
def sum1():
   for i in range(10):
   		s=s+60
sum1()
print(s)

答:当你在函数里给一个变量赋值的时候,python 就会强行创建为局部变量。
如果只是消除错误,就在函数里面赋一个初始值就可以。 但是这不是我们要的,函数内的变量默认无法被外界访问,可以加关键字global 就可以把局部变量升级为全局的了。

问: 如果在函数里面用global 的时候正好和全局也有初始值,会怎么样?

s=1
def sum1():
   global s 
   s=0
   for i in range(10):
   		s=s+60
sum1()
print(s)

答: 可以看到被修改了的,这就是global 的第二个作用,在函数内修改全局变量的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值