通过对象访问函数中的变量是全局的还是局部的?[Python]
我想知道在函数中声明一个变量,然后将它与对象一起使用是否会使它成为一个全局变量通过对象访问函数中的变量是全局的还是局部的?[Python],python,scope,Python,Scope,我想知道在函数中声明一个变量,然后将它与对象一起使用是否会使它成为一个全局变量 def re(): re.termine = False re.rect_circle_switch = True re.case1_disponible = True re.case2_disponible = True re.case3_disponible = True re.case4_disponible = True re.case5_disponi
def re():
re.termine = False
re.rect_circle_switch = True
re.case1_disponible = True
re.case2_disponible = True
re.case3_disponible = True
re.case4_disponible = True
re.case5_disponible = True
re.case6_disponible = True
re.case7_disponible = True
re.case8_disponible = True
re.case9_disponible = True
if rect.rec_1.collidepoint(pos) and re.case1_disponible==True:
if re.rect_circle_switch == True :
pygame.draw.line(fenetre,noir,(50,50),(150,150),10)
pygame.draw.line(fenetre,noir,(142, 56),(51, 145),10)
re.rect_circle_switch = False
我假设在使用它之后它仍然是局部的,但我不太明白python中的作用域是如何工作的。在一般的变量声明中,函数中的变量是局部的,而其他变量是全局的。但您也可以在函数中声明全局变量,在声明之前使用
global var\u name
。比如:
def globalVarFunc():
# declare global variable x
global x
x = 10
# local variable y
y = 20
这篇文章可能会对你有所帮助。如果您引用的是
re
,那么您不是在声明它,实际上Python中没有声明,只有赋值,它是一个全局变量。我不确定你的问题是什么。re
是一个全局变量,因为函数定义def re():…
creates将函数对象分配给变量re
。然后,该函数使用全局名称re
在自身上创建属性。您可以重新分配全局名称re,它将尝试在您分配给该名称的任何对象上创建属性。这段代码没有多大意义。全局范围内函数下面的代码实际上会抛出属性错误,因为您从未实际调用过函数。