2017-02-27 18 views
1

私はそれが実行された場合、我々は関数からUnboundLocalErrorをどのように解決できますか?

UnboundLocalError: local variable 'x' referenced before assignment 

以下のようにこのエラーを得た。しかし、私の場合には、機能は私が作ったものではありませんが、here

x = 10 
def foo(): 
    x += 1 
    print(x) 
foo() 

のようなpythonで人気のあるエラーを得ましたそれは図書館に含まれています。この場合、関数内のグローバルキーワードで変数を宣言することなく、この問題をどのように解決できますか?私はライブラリ内の関数を変更することは良い考えではないと思います。

+2

悪いだろう。そのような機能が働く方法はありません。 – BrenBarn

+1

あなたはこのライブラリのメンテナーに連絡してください。 –

答えて

0

機能を制御することはできないので、変数の名前を変更する方がよいでしょう。名前を変えるかもしれませんか?

はい。

  • グローバルスコープ内で使用すると、スコープが悪くなります。
  • ライブラリーを作成していないため、を簡単にに変更することはできません(次回の更新で変更が書き換えられます)。あなたはそれを修正することができたとしても
  • globalを使用すると、その機能がライブラリにある場合は、ライブラリが壊れている
+0

変数は関数内で宣言されているので、名前を変更することもできません。 – verystrongjoe

+0

関数外の変数です。名前を変更することはできますか? – masnun

+0

@mansunいいえ、私は変数の名前を変更できません。問題は、変数を割り当てる前に初期化する必要があることです。変数名を置き換えることは解決策にはなりません。 – verystrongjoe

関連する問題