为什么不打印" 5"?

时间:2018-03-31 17:32:11

标签: python function scope

def useless(x):
    print(x)
useless(5)
print(x)

为什么我的代码打印的最后一行" 5" (指第三行中使用的函数参数绑定到x)?

1 个答案:

答案 0 :(得分:0)

该范围内没有变量x。当您致电useless(5)时,您刚刚在x = 5功能的范围内分配了useless。但是当您退出该函数时,您的范围发生了变化,并且在函数外部没有定义x。您可以使用locals()调用进行检查,它将显示当前范围内的所有已分配变量(甚至是默认变量)。