python中的全局和局部变量
局部变量是在函数体中定义的变量
全局变量是在外部定义的变量
例如:
a=1
def f(): b=2
其中a是全局变量,b是局部变量。局部变量仅在函数体内部有效,函数体外部不可访问,而全局变量对以下代码有效。
在函数体内部使用全局变量
全局变量可以直接在函数体的内容部分使用,您可以直接访问它们。但是,应该注意的是,如果在函数中为不可变类型的数据执行赋值,它将不会影响外部全局变量,因为它相当于创建一个与全局变量同名的新局部变量。对于变量类型,如果使用赋值语句,它也不会对外部产生影响,但是如果使用方法,它会对外部产生影响。
例如下面的代码:
g _ b=3;g_l1=[1,2];g_l2=[1,2,3]
def t1():g _ b=2g _ L1=[]g _ L2 . append(7)
t1(g_b,g_l1,g_l2)
打印(g_b、g_l1、g_l2)
全局关键字
如上所述,如果使用赋值语句,就相当于在函数内部创建一个新变量,并再次指向它。然而,有时我们希望将这个变量引用到外部全局变量。在赋值操作中,我们给出一个指向全局变量的新指针。此时,我们可以使用全局关键字来指示函数内部的变量是我使用的全局变量。使用方法如下:
g_b=3
def t1():全局g_b g_b=2
t1()
打印(g_b)
此时,您会发现全局变量g_b也已被重定向,因为全局gb指示指定函数中的g_b是外部函数。