为什么我的函数没有正确返回这些变量?

时间:2017-06-16 10:27:50

标签: python-3.x

我正在创建一个程序,因为多种原因必须始终将大量变量保留为空字符串。

为了避免重复此代码,我创建了一个如下函数:

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

现在我的代码中的不同点,当我想重置相同的变量时,我只是尝试调用该函数,使它们成为我当前函数命名空间的一部分(虽然它不起作用的事实导致我建议这个不是它的工作方式)。

每当我在另一个函数中调用此函数,然后尝试使用该变量时,我都会遇到以下追溯:

UnboundLocalError: local variable 'other_name_used' referenced before assignment

这让我建议变量名不在当前函数的命名空间中,但是必定是因为它在调用'reset_variables'函数时返回给它了??

有谁知道为什么会这样,如果有的话,我怎么能实现这个目标?

感谢所有帮助过的人!

1 个答案:

答案 0 :(得分:1)

真的?

重置变量不是那么容易

因为你只能返回一个。

如果要重置,则必须将变量定义为全局变量,并将此函数中的值设置为变量