函数的作用域:命名空间,变量名被赋值的位置,决定变量名能被访问到的范围。
先来了解下三个命名空间
- 内置,built-in namespace,比如print(),作用范围最大
- 全局,global namespace,可以理解成顶格写没有缩进的变量,函数外定义
- 局部,local namespace, 函数体内,作用范围最小
局部变量和全部变量之间的关系:
- 局部空间(函数内)可以获取全局变量
- 全局空间(函数外)不可以获取局部变量,可以间接通过返回值获取
- 全局空间(函数外)不可以修改局部变量
- 局部空间(函数内)不可以修改全局变量,但可以在函数内声明后修改,格式:global 全局变量;不建议
#c是全局变量
c=12
def run(a):#a,b,d是局部变量,函数的参数是局部变量
global c
print(a)
b=c
print(b)
d=22
c=33
print(c)
return d
# 可以间接通过返回值获取d
result=(run(5))
print(result)
运行结果:
在一个函数当中是可以调用另外的一