局部变量与全局变量

python的全局变量与局部变量

全局变量与局部变量两者的本质区别就是在于作用域

用通俗的话来理解的话,

全局变量是在整个py文件中声明,全局范围内都可以访问

局部变量是在某个函数中声明的,只能在该函数中调用它

局部变量只能在局部使用。

那么不巧的是,我的局部变量和全局变量定义了同一个名称,谁的优先级更高呢?

a=3
def ss():
	a=5
	print("a是:",a)
ss()
a是: 5

在函数内局部变量会优先使用。

而优先级还有一个体现,来看下面的例子

a = 3
def showvariable():
    a = a * 5
    print(a)
showvariable()
Traceback (most recent call last):
  File "C:/Users/LENOVO/....py", line 5, in <module>
    showvariable()
  File "C:/Users/LENOVO/....py", line 3, in showvariable
    a = a * 5
UnboundLocalError: local variable 'a' referenced before assignment

这里会报错,是因为在执行a=a*5时,函数内部的a和全局变量a重名了,但是它会优先使用局部变量a。而局部变量a没有被赋予初始值,所以会报错。

如果我们想在函数内部使用全局变量的话,这就需要使用一个标志,让编译器知道这是一个全局变量,所以我们就用到了global。

a = 3
def showvariable():
    global a #这里声明a是一个全局变量
    a = a * 5
    print("a是:",a)
showvariable()
a是: 15

我们也可以在函数内部定义global在函数外面使用

def showvariable():
    global a
    a = 5

showvariable()
print("a是:",a)
a是: 5

但是这里要注意必须先在外面调用showvariable()函数,否则就会因为函数没有被调用,所以全局变量a并没有被创建,就会报错。

最后希望大家记住,局部变量就是只能在局部使用的变量,而全局变量是在整个程序中可以使用的

注意:

在函数内部,可以引用全局变量;如果全局和局部都有一个变量,函数查找,由内而外,局部没有,再到全局找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值