-1

コンソールでモジュールをテストするとエラーは発生しませんが、ブラウザからデータを受信しようとするとエラー メッセージが表示されます。

UnboundLocalError: local variable 'mile' referenced before assignment

これは私のコードの関連部分です:

while cursor.alive:                
    try:
        doc = yield motor.Op(cursor.next_object)
        if doc:
            mileInfo={'time': doc['time_normal']}
            print doc['term']

            if doc['term'] == 'abc':
                event = 'abc'
            elif doc['term'] == 'def':
                event = 'def'
            elif doc['term'] == 'xyz':
                 event = 'xyz'    
            else:
                 event = 'rst'


             if not doc['coordinates']:
                 placeName = doc['place']['full_name']                          
                 mile = from_name(placeName, event)
                 print 'from Name: ' ,mile, 'term: ', event, doc['place']['full_name'] 
             else: 
                 mile = get_coords(doc['coordinates']['coordinates'], event)
                print 'from coordinates: ',mile, 'term: ', event, 'location:', doc['coordinates']['coordinates']                                                                  

               mileInfo['miles'] = mile
               self.write_message(json.dumps(mileInfo, default = json_util.default))

        except StopIteration:
            pass

    except:
            traceback.print_exc()

このエラーが Web ブラウザーからのみ発生する理由がわかりません。

ありがとう

4

1 に答える 1

0

グローバル変数「マイル」を宣言し、インデントをクリーンアップすることで、エラーをソートできました(提案@MartijnPietersに感謝します)。そこで、ここにグローバル変数を挿入しました。

while cursor.alive:
    try:
        doc = yield motor.Op(cursor.next_object)
        global mile

        if doc: ...............
于 2012-11-25T22:39:46.563 に答える