面试题答案
一键面试- 打印出的
x
值:- 打印出的
x
值是20。
- 打印出的
- Python查找变量
x
的作用域规则:- Python查找变量遵循LEGB规则,即Local(局部作用域)、Enclosing(嵌套作用域,也叫非局部作用域)、Global(全局作用域)、Built - in(内置作用域)。
- 在上述代码中,当
inner
函数执行print(x)
时:- 首先在
inner
函数的局部作用域查找变量x
,inner
函数内没有定义x
,所以查找失败。 - 接着在嵌套作用域(即
outer
函数的作用域)查找,outer
函数中定义了x
且值为20,查找成功,所以打印出20。 - 如果在
outer
函数中也没有找到x
,则会继续在全局作用域查找,最后在内置作用域查找。
- 首先在