前言:
目前我们对“python全局变量的用法”大致比较关注,兄弟们都需要知道一些“python全局变量的用法”的相关内容。那么小编同时在网络上网罗了一些对于“python全局变量的用法””的相关知识,希望看官们能喜欢,咱们快快来学习一下吧!全局变量是在函数外部定义和声明的变量,我们需要在函数内部使用它们。
# This function uses global variable s def f(): print s # Global scope s = "I love Prog61"f()
输出:
I love Prog61
如果在函数范围内也定义了相同名称的变量,则它将仅打印函数内部给定的值,而不输出全局值。
# This function has a variable with # name same as s. def f(): s = "Me too." print s # Global scope s = "I love Prog61" f() print s
输出:
Me too.I love Prog61.
在调用函数f()之前,变量s被定义为字符串“ I love Prog61”。f()中唯一的语句是“print s”语句。由于没有local,因此将使用global的值。
问题是,如果我们在函数f()中更改s的值,将会发生什么? 也会影响全局变量吗? 我们在以下代码中对其进行测试:
def f(): print s # This program will NOT show error # if we comment below line. s = "Me too." print s # Global scope s = "I love Geeksforgeeks" f() print s
输出:
Line 2: undefined: Error: local variable 's' referenced before assignment
为了使上述程序有效,我们需要使用“global”关键字。如果我们要进行赋值/更改它们,则只需要在函数中使用global关键字即可。 全局不需要打印和访问。为什么? Python“假定”由于要在f()内部分配s而需要局部变量,因此第一个print语句会抛出此错误消息。如果尚未在函数内部更改或创建的任何变量都未声明为全局变量,则该变量为本地变量。要告诉Python,我们要使用全局变量,我们必须使用关键字“global”,如以下示例所示:
# This function modifies global variable 's' def f(): global s print s s = "Look for Geeksforgeeks Python Section" print s # Global Scope s = "Python is great!" f() print s
现在没有歧义了。
输出:
Python is great!Look for Geeksforgeeks Python Section.Look for Geeksforgeeks Python Section.
一个很好的例子
a = 1 # Uses global because there is no local 'a' def f(): print 'Inside f() : ', a # Variable 'a' is redefined as a local def g(): a = 2 print 'Inside g() : ',a # Uses global keyword to modify global 'a' def h(): global a a = 3 print 'Inside h() : ',a # Global scope print 'global : ',a f() print 'global : ',a g() print 'global : ',a h() print 'global : ',a
输出:
global : 1Inside f() : 1global : 1Inside g() : 2global : 1Inside h() : 3global : 3
标签: #python全局变量的用法 #python全局变量定义 #python中的全局变量可以直接修改 #python全局变量在程序执行的全过程有效