观察以下代码
python
def getPoint():
x = 10
y = 20
return x, y
x, y = getPoint()
在这个代码中,函数内部存在x,y 函数的外部也有x,y.但是这两组x,y不是相同的变量,而只是恰好有一样的名字
变量只能在所在的位置的内部生效
在函数getPoint()内部定义的x,y只是在函数的内部生效,一旦出了函数的范围这两个变量就不在生效
python
def getPoint():
x = 10
y = 20
return x, y
getPoint()
print(x, y)
在不同的作用域中,允许出现相同的变量名
python
x = 20
def test():
x = 10
print(f"函数内的x:{x}")
test()
print(f"函数外的x:{x}")
在函数内部的变量叫"局部变量", 不在任何函数内部的变量叫"全局变量"
如果函数内部尝试访问不到的变量在局部不存在,就会去尝试去全局作用域中查找
python
x = 10
def test():
print(f"x = {x}")
test()
如果想在函数内部,修改全局变量的值,需要使用global关键字声明
python
x = 20
def test():
global x
x = 10
print(f"函数内的x:{x}")
test()
print(f"函数外的x:{x}")
如果此处没有global,则函数内部的x = 10就会被视为是创建一个局部变量x,这样就和全局变量x不相关了