小编tfj*_*tfj的帖子

在函数中调用locals()不直观?

这可能是基本的,但可以帮助我理解命名空间.一个很好的解释可能会逐步执行函数定义执行时发生的事情,然后执行函数对象后发生的事情.递归可能使事情变得复杂.

结果对我来说并不明显; 我原以为:

locals_1将包含var; locals_2将包含var和locals_1; 和locals_3将包含var,locals_1和locals_2

# A function calls locals() several times, and returns them ...
def func():
  var = 'var!'
  locals_1 = locals()
  locals_2 = locals()
  locals_3 = locals()
  return locals_1, locals_2, locals_3

# func is called ...
locals_1, locals_2, locals_3 = func()

# display results ...
print 'locals_1:', locals_1
print 'locals_2:', locals_2
print 'locals_3:', locals_3
Run Code Online (Sandbox Code Playgroud)

结果如下:

locals_1: {'var': 'var!', 'locals_1': {...}, 'locals_2': {...}}
locals_2: {'var': 'var!', 'locals_1': {...}, 'locals_2': {...}}
locals_3: {'var': 'var!', …
Run Code Online (Sandbox Code Playgroud)

python locals

6
推荐指数
2
解决办法
1663
查看次数

标签 统计

locals ×1

python ×1