Skip to main content
 首页 » 编程设计

python之在 python 中使用返回的变量

2025年05月04日18zhoujg

为什么下面的代码不允许我在函数返回后使用 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'): 

当您要进行更多类似比较时,这也会让事情变得更容易。