null
Python提供了 Global
和 Local
变量,以便在不同的代码块中使用相同的变量标识符。全局变量通常是在函数之外定义的,在代码文件的任何地方都可以使用它们。但是全局变量也可以在函数中使用。
可变范围
在开始解释全局变量和创建之前,我们需要学习Python中的变量范围。在函数和类外部定义的变量默认为全局变量。除了函数体或作用域和类体或作用域之外,它们可以在应用程序内部的任何地方使用。
#Global Scopeglobal_var=5def myf(): #Local Scope local_var = 4#Global Scopeprint(global_var)
在上面的示例中,我们可以看到名为localu var的变量是在函数中定义的。局部变量只能在函数的局部范围内访问。名为globalu var的变量在全局范围中定义,默认情况下可以在全局范围中使用。
定义全局变量
让我们从一个简单的例子开始,我们将定义一个全局变量,并在全局范围内多次使用这个变量。此外,我们将尝试在局部范围内使用这个全局变量,这是行不通的。
#Global Scopea = 5def myf(): # This will print 5 print(a)myf()# This will print 5print(a)
我们可以从这个例子中看到,有一个变量是全局的,名为a。当我们在局部范围内使用这个全局变量时,我们可以毫无问题地访问它,并且打印全局变量的值。
定义局部变量
局部变量在局部范围内定义,只能从当前局部范围访问。如果存在同名的全局变量,则它们的行为将类似于不同的变量。在下面的示例中,我们将定义两个名称相同的变量,即a,并打印它们的值。
# Global Scopea = 5def myf(): # Local Scope a =4 # This will print 4 print(a)myf()# This will print 5print(a)
全局关键字
全球的 关键字用于访问当前局部范围之外的全局变量。例如,可以使用全局关键字在函数内部访问全局变量。global关键字只用于一次使全局变量可以从本地范围访问。下面是一些关于全局关键字的规则。
- 如果变量在局部范围内使用(如赋值),则假定它是局部变量,除非使用global关键字。
- 不需要在本地范围之外使用全局关键字。
- 如果变量名用作局部变量,则不能使用global关键字使其成为全局变量。
# Global Scopea: int = 5def myf(): global a # This will print 5 print(a)myf()# This will print 5print(a)
当我们尝试使用已经使用的局部变量名时,我们会得到一个类似“SyntaxError:name’a’assigned to before global declaration”的错误。
![图片[1]-Python中的全局变量-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/05/poftut_image-200.png)
# Global Scopea: int = 5def myf(): # Local Scope a = 4 global a # This will print 5 print(a)myf()# This will print 5print(a)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END