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

関連する問題