python全局变量和局部变量可以同名吗_Python global

当Python局部变量与全局变量同名时,局部变量会隐藏全局变量。要访问全局变量,需在函数内使用`global`关键字声明。本文通过实例解析了如何在函数内部正确使用全局变量。
摘要由CSDN通过智能技术生成

Python global使用教程

如果局部变量隐藏了全局变量,那么当我们再次访问全局变量时,程序会报错,会说找不到该变量,因为,该全局变量被局部变量隐藏了。

Python变量重名详解

语法

varname = value

def func():

print(varname)

varname = value2

func()

print(varname)

说明

首先,我们定义了一个全局变量 varname,接着,我们定义了一个函数 func,同时,在函数 func 里面,我们首先打印变量 varname,接着再次给变量 varname 赋值。

最后,我们调用 func 函数,并使用 print 打印全局变量 varname 的值,此时程序报错。因为,我们在函数 func 里面定义的局部变量 varname 隐藏了全局变量 varname。

因此,在函数 func 里面打印的 varname 被当成了局部变量。

Python global解决变量重名

当局部变量与全局变量重名时,我们可以在函数内部使用 global 关键字来说明,我们在函数内部使用的是全局变量,而不是再次定义一个局部变量。

案例

Python局部变量和全局变量重名

Python 局部变量和全局变量重名

print("嗨客网(www.haicoder.net)")

site = "HaiCoder"

def func():

print("In Func Site =", site)

site = "haicoder"

print("Global Site =", site)

程序运行后,控制台输出如下:

首先,我们定义了一个全局变量 site,接着,我们定义了一个函数 func,同时,在函数 func 里面,我们首先打印变量 site 的值,接着再次给变量 site 赋值。

最后,我们使用 print 打印全局变量 site 的值,输出了全局变量 site 的值,此时程序是正确的。

Python局部变量和全局变量重名

Python 局部变量和全局变量重名

print("嗨客网(www.haicoder.net)")

site = "HaiCoder"

def func():

print("In Func Site =", site)

site = "haicoder"

func()

print("Global Site =", site)

程序运行后,控制台输出如下:

首先,我们定义了一个全局变量 site,接着,我们定义了一个函数 func,同时,在函数 func 里面,我们首先打印变量 site 的值,接着再次给变量 site 赋值。

最后,我们调用函数 func,此时程序报错,理论上我们在 func 函数里面第一次打印使用的应该是全局变量 site,但实际上程序却把 func 函数的第一次打印使用的变量定义为了局部变量。

Python局部变量和全局变量重名

Python 局部变量和全局变量重名

print("嗨客网(www.haicoder.net)")

site = "HaiCoder"

def func():

print("In Func Site =", globals()["site"])

site = "haicoder"

func()

print("Global Site =", site)

程序运行后,控制台输出如下:

首先,我们定义了一个全局变量 site,接着,我们定义了一个函数 func,同时,在函数 func 里面,我们首先使用 globals 关键字访问变量 site 的值,接着再次给变量 site 赋值。

最后,我们调用函数 func,此时程序正常输出了全局变量的 site 的值,而且,在 func 函数里面最后赋值的 site 变量也是局部变量而不是全局变量 site。

Python局部变量和全局变量重名

Python 局部变量和全局变量重名

print("嗨客网(www.haicoder.net)")

site = "HaiCoder"

def func():

global site

print("In Func Site =", site)

site = "haicoder"

func()

print("Global Site =", site)

程序运行后,控制台输出如下:

我们在函数内部,可以直接使用 global 关键字,表明我们函数内部使用的变量是全局变量,而不是我们先定义局部变量。

Python global使用教程总结

Python 中的全局变量默认是可以在所有的函数内访问的,但是,如果在函数中定义了与全局变量同名的变量时,就会发生局部变量隐藏了全局变量的情形。

如果局部变量隐藏了全局变量,那么当我们再次访问全局变量时,程序会报错,会说找不到该变量,因为,该全局变量被局部变量隐藏了。

当局部变量与全局变量重名时,我们可以在函数内部使用 global 关键字来说明,我们在函数内部使用的是全局变量,而不是再次定义一个局部变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值