私はこのような時間オブジェクトを初期化しようとしています:
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)
値なしでオブジェクトを作成できます。
>>> import datetime
>>> datetime.time()
datetime.time(0, 0)
ただし、モジュールからclass datetimeをインポートし、モジュール自体を置き換えます。
>>> from datetime import datetime
>>> datetime.time
<method 'time' of 'datetime.datetime' objects>
そして、それはdifferent署名を持っています:
>>> 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
両方のモジュールが必要な場合。
時間のコンストラクタは次のとおりです。
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
それは、import
から競合するdatetime
にdatetime
しているという事実です。おそらくtime
を意味していたのですが、競合するimport
をalsotime
ingしています。どうですか:
import datetime as dt
そして
t = dt.time(0, 0, 0)