Python 局部变量,全局变量,非局部变量是 Python 三种常见的变量,它们与变量作用域息息相关。
局部变量
一般位于函数内的变量为局部变量,它的作用域仅在函数体内,在函数体外无效:
def foo():
x = 10
print(f'x equals {x}' )
foo() # x equals 10
print(x) # error: 'x' is not defined
类似于变量x
为局部变量
全局变量
在一个模块中,凡是不在函数体内的变量都是全局变量:
x = "I'm global variable"
def foo():
x = 10
print(f'x equals {x}' )
foo()
print(x)
打印结果:
x equals 10
I'm global variable
细心的朋友会注意到在函数foo
内的变量x
打印结果为10,而不是 I'm global variable
.
这里面引出一个重要的知识:Python解释器在寻找x
时,优先从foo
函数体内,也就是局部中寻找,如果找不到