为什么下面的代码不允许我在函数返回后使用 os
变量? os
模块没有被导入,所以这根本不是问题。当我调用 Begin()
函数并在函数完成后打印 os
变量时,python 说该变量未定义。
def Begin():
os = raw_input("Choose your operating system:\n[1] Ubuntu\n[2] CentOS\nEnter '1' or '2': ")
if os != '1' and os != '2':
print "Incorrect operating system choice, shutting down..."
time.sleep(3)
exit()
else:
return os
Begin()
print os
最佳答案
您必须将返回的结果分配给实际变量。函数中的os
只存在于函数作用域内,不能在函数作用域外使用。
result = Begin()
print result
正如@nneonneo 提到的,os
是标准库的一部分,是一个常用的模块,使用os
作为变量名会使读者感到困惑,并且如果 os
被导入,将覆盖它。
另一个建议:
if os != '1' and os != '2':
可以更简洁地写成
if os not in ('1', '2'):
当您要进行更多类似比较时,这也会让事情变得更容易。
关于python - 在 python 中使用返回的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15308161/