1

申し訳ありませんが、少し面倒ですが、コードを破損しました。何が問題なのか理解できません。if ステートメントを削除しましたが、timedelta が認識されなくなり、コードが壊れているようです。ただし、参照を削除していないと確信しています。頭を悩ませていますが、何が問題なのかわかりません..

何がうまくいかなかったかわかりますか?

import random
import datetime
import csv
from itertools import groupby



def generator():

    i=0
    while 1:
        yield random.randint(-1, 1), datetime.datetime.now()
        i=i+1


def keyfunc(timestamp,interval):
    xt = datetime.datetime(2013, 4,4)
    dt=timestamp
    delta_second =(dt - xt).seconds
    normalize_second = (delta_second / (interval*60)) * (interval*60)
    newtime = xt + timedelta(seconds=normalize_second)
    return newtime


mynumber = 100
for random_number, current_time in generator():
    mynumber += random_number
    reftime5min = keyfunc(current_time,5)


print mynumber,",", current_time, reftime5min

私が今得るエラーは次のとおりです。

トレースバック (最新の呼び出しが最後):
  ファイル ""、35 行目、
  ファイル ""、28 行目、keyfunc 内
NameError: グローバル名 'timedelta' が定義されていません
4

2 に答える 2

4

に変更timedeltadatetime.timedeltaます。クラスを直接インポートしていないtimedeltaため、修飾名を使用する必要があります。

于 2013-04-04T09:51:07.147 に答える
1
from datetime import timedelta

http://docs.python.org/2/library/datetime.html

于 2013-04-04T09:50:00.303 に答える