名称空间和作用域

名称空间:

    --内置空间

全局--|

    --全局空间:初函数外的空间

    局部空间:可以理解为函数内部的空间

作用域:全局作用域和局部作用域

 

获取变量的优先级

局部>全局>内置

加载时的优先级

内置>全局>局部

查看以下代码输出是什么?

x=2
def foo():
print(x)

def fun():
x=1
foo()

fun()

答案:输出2

首先解释器从上往下进行执行,在foo函数在定义的时候,就已经获取到了x,之后fun调用foo函数的时候x就不再获取

从此问题可以读出结论,函数在定义阶段就已经决定了值,所以无论调用嵌套多层都会从定义阶段开始按获取优先级进行

posted @ 2021-04-26 22:18  SH金刚狼  阅读(35)  评论(0编辑  收藏  举报