2017-06-16 57 views
0

我正在创建一个程序,因为众多原因必须随时将大量变量保留为空字符串。为什么我的函数不能正确返回这些变量?

为了避免重复这段代码,我创建了一个功能象下面这样:

def reset_variables(): 

    other_name_used  = '' 
    name_changed = '' 
    former_name  = '' 
    country_of_residence = '' 
    at_address_since = '' 
    previous_address = '' 
    date_of_birth = '' 
    city_of_birth = '' 

    return other_name_used 
    return name_changed 
    return former_name 
    return country_of_residence 
    return at_address_since 
    return previous_address 
    return date_of_birth 
    return city_of_birth 

现在在我的代码,whenver我想重置相同的变量的不同点,我只是试图调用函数,所以它们成为我当前函数名字空间的一部分(尽管它不起作用的事实导致我暗示这不是它的工作原理)。

每当我调用这个函数,而在另一个函数,然后尝试使用变量,我用下面的回溯招呼:

UnboundLocalError: local variable 'other_name_used' referenced before assignment 

这使我认为,变量名是不在当前函数的命名空间中,当然它必须是因为它在调用'reset_variables'函数后返回给它的!

有人知道为什么会发生这种情况,如果是的话,我该如何实现这一目标?

感谢大家帮助!

回答

1

真的吗?

它不那么容易复位变量

,因为你只能返回一个。

如果要重置你必须定义变量为全局变量,比该功能的值设置为变量

+0

啊是有道理的,我的印象是返回功能是无限的。非常感谢! – Ruthus99

相关问题