尝试将 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
不断出现语法错误,试图了解 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