尝试将 GLOBAL 放在 Python 内的正确位置

Trying to place GLOBAL in the right place within Python

不断出现语法错误,试图了解 GLOBAL 在 Python 函数中的工作位置和方式。

import os

path = "start"
route = "1"

def pathcontrol(route, path):
    global path
        while  path=="start":
            if route == "1":
                path = "one"
            elif route == "2":
                path = "two"
            else:
                return


pathcontrol(route, path)
print("Exit Path = "+path)

exit=input("Press enter to exit ")

我的想法是为 'route' 添加一个 input() 以便用户可以选择 1 或 2,但我知道如何管理它。

谢谢, :-)

您将路径作为参数发送,并在全局范围内声明它。 Python 现在不知道要使用哪个 path 变量:全局变量还是参数。

另外:global 关键字被认为是不好的做法。参见例如Pylint W0603.

无论如何,知道它是如何工作的是件好事。以下将打印 exit path=one 因为您正在访问和编辑实际的全局 path 变量。

import os

path = "start"
route = "1"

def pathcontrol(route):
    global path
    while path=="start":
        if route == "1":
            path = "one"
        elif route == "2":
            path = "two"
        else:
            return


pathcontrol(route)
print("Exit Path = "+path)

然而,在下面的示例中,您正在访问 path 但没有对其进行编辑。你是 "copying" 全球范围内的那个:

import os

path = "start"
route = "1"

def pathcontrol(route, path):
    while path=="start":
        if route == "1":
            path = "one"
        elif route == "2":
            path = "two"
        else:
            return


pathcontrol(route, path)
print("Exit Path = "+path)

这会打印出 exit path=start