Python中的命名空间和作用域

我已经遇到了一个关于Python中命名空间和作用域的脚本,对于这个脚本我无法弄清楚这个脚本是如何运行的,因为它混合使用了这两个概念。下面是代码: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)

我想这个脚本的输出应该只包含四个打印表现,但事实证明,运行时,它是五位。此外,每行中j和k的值也与我所预期的大不相同。有人能解释这是如何运行的吗?

如果您还可以详细说明这些代码块中的命名空间和作用域,可以提供真诚的感谢。另外,这里是我从我的电脑上运行它的输出,它目前配备了Python 2.7.14。 output result] 1

回答:

小外形解释的变量是如何生活

编辑:部分“我们可以重用j_1因为以前j_1这一个永远生活在一起”实际上是不完全准确,因为在proc2你叫proc1,所以他们一起生活。所以蓝j_1(在proc2Ĵ实际上是j_2,我改变了外形。

以上是 Python中的命名空间和作用域 的全部内容, 来源链接: utcz.com/qa/261808.html

回到顶部