pythonのアンバウンドローカルエラーとは何ですか?


ベストアンサー

このコードを参照してください。

  1. カウンター= 0
  2. def incremental():
  3. カウンター+ = 1
  4. increment()

Pythonには変数宣言がないため、変数自体のスコープを把握する必要があります。これは、次の単純なルールによって行われます。関数内の変数。その変数はローカルと見なされます。したがって、行

カウンター+ = 1

暗黙的にcounterをincrement()に対してローカルにします。ただし、この行を実行しようとすると、割り当てられる前にローカル変数counterの値を読み取ろうとします。 UnboundLocalErrorで。

このタイプのエラーを解決するには、次の変更を行います。

  1. カウンター= 0
  2. defインクリメント():
  3. グローバルカウンター
  4. カウンター+ = 1
  5. incremental()

All the Best …!

回答

ローカル変数が参照される前に参照されると、UnboundLocalErrorが発生します割り当てられています。

NameErrorのサブクラスです

割り当てられる前、または宣言される前にアクセスしようとした識別子があることを意味します。

次のいずれか弱い型付けセマンティクス、多重継承、共通の基本クラスやプロトコルのない言語の多くの問題。

そこにi ■コードを実行する前にイントロスペクションとコンパイラの推論がより有益になる可能性がある例外への過度の依存。

コードで検証するために文字を入力することで節約できると思うものは、スタックトレースで支払います。 。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です