Python中的命名空间和范围
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
我估计这个脚本的输出应该只包含四个print表达式,但运行它时结果是5。此外,每行中j和k的值也与我的预期完全不同。有人可以解释这是怎么运行的吗
如果您还可以详细说明这些代码块中的命名空间和范围,我们将表示衷心的感谢。此外,这是从我的计算机运行它时的输出,当前它配备了Python 2.7.14。 output result] 1
答案
小轮廓解释你的变量如何生活
编辑:'我们可以重复使用j_1,因为之前的j_1而且这个从未在一起生活'实际上并不完全准确,因为在proc2
中你称之为proc1
,所以他们一起生活。所以蓝色j_1
(j在proc2
实际上是j_2
。我改变了轮廓。
以上是关于Python中的命名空间和范围的主要内容,如果未能解决你的问题,请参考以下文章