3

この python コードの行に問題があるとすれば、それは何か:

daterange = [begin + timedelta(n) for n in range((end - begin).days)]

beginendは有効datetime.dateな値を持つオブジェクトです。

これを Django ビューで使用して一部のデータを処理していますが、これが含まれているビューが呼び出されるたびに、前述の行が強調表示された次のエラーが発生します。

UnboundLocalError at /url/of/error/creating/view/here/
local variable 'range' referenced before assignment

インタープリター内でこの行を実行すると正常に動作しますが、Django ビュー内ではうまくいきません。rangeが変数名として解釈される理由がまったくわかりません。この行に実際に何か問題があるのでしょうか、それとも Django に文句を言わせているコードの他の何かでしょうか?

ヘルプ!

4

1 に答える 1

11

Django には何の問題もありません。同じスコープにローカル変数rangeを作成します (割り当てることにより)。たとえば、関数の最後の行では、同じ関数の最初の行での出現をそのローカル変数への参照とrange = None見なします。rangeその時点では値が割り当てられていないため、UnboundLocalError.

于 2011-04-22T21:50:02.647 に答える