func 1
def num1():
global h
h=7
功能2
def num2():
print(h)
当我调用此函数时:
num2()
在这里,它应该打印在func 1
中全局声明的h
的值。 但它给了NameError
为什么??有人请回答我..
要通过num2()
访问全局变量h
请确保在调用num2()
之前调用num1()
定义num1
实际上并没有定义h
。num1
的定义只是说,当你调用num1
时,它会分配给全局名称h
。如果当时h
不存在,则将创建它。但是定义num1
不足以创建h
。
您需要确保在调用num2
之前h
存在。您可以通过分配给自己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