为什么变量在被赋值之前必须被声明为全局变量?

6 python global global-variables python-3.x

为什么我们必须这样做:

global x
x = "Hello World!"
Run Code Online (Sandbox Code Playgroud)

当这更具可读性时:

global x = "Hello World"
Run Code Online (Sandbox Code Playgroud)

为什么会这样,背后有原因吗?

小智 1

Python 的目标是尽可能具有可读性。为了达到这个目标,用户必须被迫以明确定义的方式行动 - 例如,您必须恰好使用四个空格。就像这样它定义了关键字global是一个简单的语句。这意味着:

\n\n
\n

简单语句由单个逻辑行组成。\n 简单语句

\n
\n\n

\n\n
\n

Programmer\xe2\x80\x99s 注意:全局是解析器的指令。它仅适用于与全局语句同时解析的代码。\n 全局语句

\n
\n\n

如果你这样写:

\n\n
global x = 5\n
Run Code Online (Sandbox Code Playgroud)\n\n

您将有两个逻辑运算:

\n\n
    \n
  1. 解释器请使用全局 x 而不是本地 x
  2. \n
  3. 将 5 分配给 x
  4. \n
\n\n

在一行中。此外,它似乎global只适用于当前行,而不适用于整个代码块。

\n\n

TL;TR

\n\n

它是为了迫使用户编写更好的可读代码,这些代码被分割为单个逻辑操作。

\n