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

全局变量是在函数外部定义和声明的变量, 我们需要在函数内部使用它们。

# This function uses global variable s def f(): print (s) # Global scope s = "I love lsbin" f()

【Python中的全局变量和局部变量】输出如下:
I love lsbin

在调用函数f()之前, 将变量s定义为字符串" I love lsbin"。 f()中唯一的语句是" print s"语句。由于没有local, 因此将使用global的值。
# This function has a variable with # name same as s. def f(): s = "Me too." print (s)# Global scope s = "I love lsbin" f() print (s)

输出如下:
Me too.I love lsbin.

如果在函数范围内也定义了具有相同名称的变量, 则它将仅打印函数内部给定的值, 而不输出全局值。
问题是, 如果我们在函数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 lsbin" f() print (s)

输出如下:
Line 2: undefined: Error: local variable 's' referenced before assignment

为了使上述程序有效, 我们需要使用" global"关键字。如果我们要进行分配/更改它们, 则只需要在函数中使用global关键字即可。全局不需要打印和访问。为什么? Python"假定"由于要在f()内部分配s而需要局部变量, 因此第一个print语句会抛出此错误消息。如果尚未在函数内部更改或创建的任何变量未声明为全局变量, 则该变量为本地变量。要告诉Python我们要使用全局变量, 我们必须使用关键字"全球", 如以下示例所示:
# This function modifies the global variable 's' def f(): global s print (s) s = "Look for lsbin Python Section" print (s) # Global Scope s = "Python is great!" f() print (s)

现在没有歧义了。
输出如下:
Python is great!Look for lsbin Python Section.Look for lsbin 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 DS课程。

    推荐阅读