我遇到了一个关于Python命名空间和范围的脚本,我无法弄清楚这个脚本是如何运行的,因为它混合使用了这两个概念。这是代码:
j, k = 1,2
def proc1():
j, k = 3, 4
print “ j == %d and k == %d” % (j, k)
k = 5
def proc2():
j = 6
proc1()
print “ j == %d and k == %d” %(j , k)
k = 7
proc1()
print “ j == %d and k == %d” % (j, k)
j = 8
proc2()
print “ j == %d and k == %d” % (j, k)
我认为这个脚本的输出应该只包含四个print表达式,但运行它时结果为5。此外,每行中j和k的值也与我的预期完全不同。有人可以解释一下这是怎么运行的吗?
如果您还可以详细说明这些代码块中的命名空间和范围,那么表示感谢。此外,这是从我的计算机运行它时的输出,当前它配备了Python 2.7.14。 output result] 1