This question already has answers here:
Using global variables in a function
(18个答案)
4年前关闭。
因此,我一直在为Python“计算机软件”进行编码,在该计算机上您基本上具有可以编辑的登录用户名和密码。我尝试添加一项功能,该功能可让您“删除”密码(但更像是跳过密码),但无法正常工作。这是跳过过程的代码:
*请注意,
这是将布尔值设置为
这是我定义和全球化
(该函数的执行时间更长,但不涉及布尔值。)
如果您需要有关我的代码的更多信息,我可以为您提供。
因此,当我运行代码时,它会忽略有关布尔值的if语句。如果布尔值为
并非急需答案,但谢谢。
没有声明
现在,在函数
(18个答案)
4年前关闭。
因此,我一直在为Python“计算机软件”进行编码,在该计算机上您基本上具有可以编辑的登录用户名和密码。我尝试添加一项功能,该功能可让您“删除”密码(但更像是跳过密码),但无法正常工作。这是跳过过程的代码:
def Access1():
print("Input first name")
print("")
answer = raw_input()
if(answer.lower() == username and PasswordSkip == True):
print("")
print("Access granted")
List1()
if(answer.lower() == username and PasswordSkip == False):
print("")
print("Access granted")
Access2()
*请注意,
Access2()
是需要密码才能继续的功能,而List1()
是系统的主菜单。这是将布尔值设置为
True
的地方:def PasswordRemove():
print("")
print("Are you sure you want to remove your password, <yes> or <no>?")
print("")
key = raw_input()
if(key.lower() == "yes"):
PasswordSkip = True
print("")
print("Ok, your password has been removed.")
print("")
List1()
elif(key.lower() == "no"):
DetailsChange()
else:
DetailsChange()
这是我定义和全球化
PasswordSkip
的方法:PasswordSkip = False
def Startup():
global PasswordSkip
(该函数的执行时间更长,但不涉及布尔值。)
如果您需要有关我的代码的更多信息,我可以为您提供。
因此,当我运行代码时,它会忽略有关布尔值的if语句。如果布尔值为
True
,则应使用其他函数。但是,它跳过了该语句,因为它显示了Access2()
(密码功能)。并非急需答案,但谢谢。
最佳答案
片段
def Startup():
global PasswordSkip
没有声明
PasswordSkip
在任何地方都是全局的。它声明在此函数中,对设置PasswordSkip
的引用应视为全局变量PasswordSkip
,而不是某些局部变量。现在,在函数
PasswordRemove
中,您无需声明PasswordSkip
是要引入作用域的全局变量。因此,像PasswordSkip = True
这样的语句正在设置局部变量PasswordSkip
09-10 14:25