如何在python中通过声明全局调用其他函数的变量?

问题描述 投票:0回答:1

func 1

def num1():
    global h
    h=7

趣味2

def num2():  
     print(h)

当我调用这个函数时。

num2()

这里,它应该打印出 h 在全球范围内宣布的 func 1. 但它是给 NameError 为什么?有人能回答我吗?

python global-variables global
1个回答
1
投票

来访问全局变量 h 通过 num2() 记得打电话 num1() 呼叫前 num2()


0
投票

定义 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
© www.soinside.com 2019 - 2024. All rights reserved.