龙空技术网

Python中的全局变量和局部变量

少儿编程Prog61 58

前言:

目前我们对“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全局变量在程序执行的全过程有效