【问题标题】:Functions access to global variables函数访问全局变量
【发布时间】:2014-04-03 07:41:04
【问题描述】:

我正在开发一个基于文本的游戏,以便更多地练习 Python。我将游戏的“设置”部分变成了一个函数,这样我就可以最小化该函数并消除混乱,如果我想更改一些设置变量,我可以调用它。

但是当我把它全部放到一个函数中时,我意识到这个函数不能改变全局变量,除非你做所有这些额外的事情来让 python 知道你正在处理全局变量,而不是一些单独的函数变量.

问题是,函数是我所知道的重用代码的唯一方法,这就是我真正需要的,我不需要使用任何参数或任何特殊的东西。那么有没有什么类似于函数的东西可以让我重用代码,并且不会让我的代码长度几乎加倍来让它知道它是一个全局变量?

【问题讨论】:

  • 添加全局声明不会使你的代码长度加倍,除非你的代码已经很短了。
  • @BrenBarn 我认为他的函数仅用于初始化一组全局配置参数。所以在我看来,他的代码 x = 1 y = 3 z = ... 在必须为每个初始化变量编写 global var 语句时几乎翻倍。
  • @PabloFranciscoPérezHidalgo:如果是这样,把它变成一个函数无论如何也不会有任何收获。

标签: python function global-variables


【解决方案1】:

您可以使用相同的global 语句列出多个变量。

一个例子:

x = 34
y = 32

def f():
    global x,y
    x = 1
    y = 2

这样,您的函数中使用的全局变量列表可以包含在几行中。

尽管如此,正如@BrenBarn 在上面的 cmets 中所说,如果您的函数只是初始化变量,则无需使用函数。

【讨论】:

  • 谢谢,我不知道您可以列出多个变量,这绝对有帮助。我的理解也是,如果我多次更改变量的值,我将不得不对单个变量多次使用 global 语句。但现在我发现我只需要为所有变量做一个全局语句,即使我更改了两次变量,我也不必再次使用它。
  • 另外,它不仅仅是初始化变量,它询问用户这些值应该是什么,并使用许多打印行让它看起来不错,这就是为什么我想要能够在我让用户重新设置这些变量的情况下使用函数。谢谢你们的回答。
【解决方案2】:

看看this

在函数中使用全局变量就像在要使用的变量中添加global 一样简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多