为什么Python允许从函数内部将局部变量实例化为全局变量?

2024-06-28 19:09:49 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么在Python中,没有首先在全局范围中声明a,下面的代码可以在Python中工作?在

def setA():
   global a 
   a = 5

def printA():
    print a

setA()
printA()

在我看来,这是正确的方法:

^{pr2}$

Tags: 方法代码声明def全局globalprintpr2
1条回答
网友
1楼 · 发布于 2024-06-28 19:09:49

基本上与a = 5创建一个新的局部变量的原因相同:当你给一个变量赋值时,Python不关心它是否已经存在。global语句的意思是“在这个范围内使用以下名称现在都被认为是在全局范围内操作的”。在

无论a是否已经存在,您都可以在模块顶层执行a = 5。因此,您可以在函数内执行global a; a = 5global使函数内部的赋值与全局级别的赋值一样工作,包括名称是否已经存在并不重要。在

相关问题 更多 >