【问题标题】:Global Variables - Python全局变量 - Python
【发布时间】:2014-03-19 20:23:14
【问题描述】:

我又遇到了全局变量问题。我将把我的代码放到一个小例子中。我在函数 1 中分配了一个名为 var1 的变量。现在我想在函数 2 中调用该变量,然后打印函数 2 的结果

如果我使用这段代码,我会得到一个 var1 未定义。

def function1():
    global var1
    var1 = 'Hello'

def function2():
    return var1


print function2()

我该如何解决这个问题?

【问题讨论】:

  • 你有没有打电话给function1
  • 在开始你的代码之前定义 var1 全局

标签: python function variables global


【解决方案1】:

您实际上需要先致电function1()

global 关键字仅告诉 Python当您调用函数时,对 var1 的任何赋值都应该是全局名称,而不是本地名称。但这不会神奇地使var1 出现,直到您实际执行该分配。在您调用function1 之前,没有全局var1

Python 没有声明;名称要么绑定,要么不绑定。

演示:

>>> def function1():
...     global var1
...     var1 = 'Hello'
... 
>>> def function2():
...     return var1
... 
>>> function2()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in function2
NameError: global name 'var1' is not defined
>>> function1()
>>> function2()
'Hello'

【讨论】:

    【解决方案2】:

    如果你想在function2() 中创建global var1,你应该调用function1in function2。这样做var1 变得可见并且可以在function2 中返回:

     >>>def function2():
     ...    function1()
     ...    return var1
    

    【讨论】:

      猜你喜欢
      • 2019-07-24
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多