最後,datetime.timedelta(days, seconds)
和timedelta(days, seconds)
是一樣的東西。
首先,有一個名爲datetime
的模塊,其中包含幾個對象。如果你這樣做dir(datetime)
你會看到(至少在Python 2.7):
['MAXYEAR',
'MINYEAR',
'__doc__',
'__name__',
'__package__',
'date',
'datetime',
'datetime_CAPI',
'time',
'timedelta',
'tzinfo']
你會注意到,那麼,該datetime
模塊包含兩個感興趣的對象;一個也調用datetime
和一個調用timedelta
。如果你然後做dir(datetime.datetime)
,你會看到:
['__add__',
'__class__',
'__delattr__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__gt__',
'__hash__',
'__init__',
'__le__',
'__lt__',
'__ne__',
'__new__',
'__radd__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__rsub__',
'__setattr__',
'__sizeof__',
'__str__',
'__sub__',
'__subclasshook__',
'astimezone',
'combine',
'ctime',
'date',
'day',
'dst',
'fromordinal',
'fromtimestamp',
'hour',
'isocalendar',
'isoformat',
'isoweekday',
'max',
'microsecond',
'min',
'minute',
'month',
'now',
'replace',
'resolution',
'second',
'strftime',
'strptime',
'time',
'timetuple',
'timetz',
'today',
'toordinal',
'tzinfo',
'tzname',
'utcfromtimestamp',
'utcnow',
'utcoffset',
'utctimetuple',
'weekday',
'year']
沒有在列表中沒有timedelta
。
當你做了from datetime import datetime
,你沒有導入datetime
模塊來使用,而是進口datetime
對象。因此,所有對datetime
的引用都指對象,它不具有timedelta
作爲屬性/方法,因此是錯誤。
記住第一個列表,有以下沒有什麼區別:
from datetime import timedelta
my_time = timedelta(0, 9780)
和
import datetime
my_time = datetime.timedelta(0, 9780)
他們是同樣的事情。 '來自datetime import datetime'只是意味着第二個'datetime'掩蓋了模塊,因此'timedelta'錯誤。只要做一些像'import datetime as dt'那樣的事情,然後執行'dt.datetime.strftime()'(或者任何你想要的'datetime')和'dt.timedelta()'。 – roganjosh