2017-06-16 55 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

相關問題