36

私は次のような時間オブジェクトを初期化しようとしています:

t = datetime.time(0,0,0)

しかし、私はこのエラーが発生しています:

descriptor 'time' requires a 'datetime.datetime' object but received a 'int'

私はこれらのものを輸入しています

import datetime
from datetime import datetime, date, time
import time

それらは少し冗長に見えるので、これが問題の原因であるかどうか疑問に思っています

strptimeメソッドとcombineメソッドも使用しています

    earliest = datetime.combine(earliest, t)
    value = datetime.strptime(value, format)
4

3 に答える 3

45

値なしでオブジェクトを作成できます。

>>> import datetime
>>> datetime.time()
datetime.time(0, 0)

ただし、モジュール自体を置き換えて、モジュールからクラスdatetimeをインポートしました。

>>> from datetime import datetime
>>> datetime.time
<method 'time' of 'datetime.datetime' objects>

そしてそれは異なる署名を持っています:

>>> datetime.time()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: descriptor 'time' of 'datetime.datetime' object needs an argument
>>> datetime.time(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'int'

モジュール全体をインポートするか、含まれているクラスをインポートしますが、混在させないでください。固執する:

import datetime
import time

両方のモジュールが必要な場合。

于 2012-09-05T23:44:48.550 に答える
17

時間のコンストラクターは次のとおりです。

class datetime.time(hour[, minute[, second[, microsecond[, tzinfo]]]])

http://docs.python.org/library/datetime.html#time-objectsから)

これは私のために働きます:

In [1]: import datetime

In [2]: t = datetime.time(0, 0, 0)

In [3]: print t
00:00:00
于 2012-09-05T23:47:39.160 に答える
9

からimport競合しているという事実です。競合していること除いて、おそらく意味します。では、どうでしょうか。datetimedatetimetime importtime

import datetime as dt

t = dt.time(0, 0, 0)
于 2012-09-05T23:45:17.790 に答える