func 1
def num1():
global h
h=7
趣味2
def num2():
print(h)
当我调用这个函数时。
num2()
这里,它应该打印出 h
在全球范围内宣布的 func 1
. 但它是给 NameError
为什么?有人能回答我吗?
来访问全局变量 h
通过 num2()
记得打电话 num1()
呼叫前 num2()
定义 num1
实际上并没有定义 h
. 定义 num1
只是说,当你打电话 num1
,它将分配给全局名称 h
. 如果 h
那时候不存在,就会被创造出来。但是 界定 num1
不足以创造 h
.
您需要确保 h
先有 num2
被调用。您可以通过向 h
自己 num1
.
>>> num2()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in num2
NameError: name 'h' is not defined
>>> h = 3
>>> num2()
3
>>> del h
>>> num2()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in num2
NameError: name 'h' is not defined
>>> num1()
>>> num2()
7