繁体   English   中英

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

[英]Why does Python let you instantiate local variables as global from inside a function?

为什么在Python下面的工作,没有在全球范围内第一个声明

def setA():
   global a 
   a = 5

def printA():
    print a

setA()
printA()

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

a = None

def setA():
   global a 
   a = 5

def printA():
    print a

setA()
printA()

基本上出于同样的原因, a = 5可以创建一个新的局部变量:当你分配给一个变量时,Python并不关心它是否已经存在。 global声明仅表示“此范围内以下名称的任何使用现在都被视为在全球范围内运行”。

你可以做a = 5在模块顶层是否a已经与否存在。 所以你可以做global a; a = 5 函数内部a global a; a = 5 global使得函数内部的赋值与全局级别的赋值一样,包括名称是否已存在并不重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM