因为timedelta定义如下:
class datetime.timedelta([days,] [seconds,] [microseconds,] [milliseconds,] [minutes,] [hours,] [weeks])
All arguments are optional and default to 0.
你可以轻松地说“三天和四毫秒”与可选参数的方式。
>>> datetime.timedelta(days=3, milliseconds=4)
datetime.timedelta(3, 0, 4000)
>>> datetime.timedelta(3, 0, 0, 4) #no need for that.
datetime.timedelta(3, 0, 4000)
而对于str转换,它返回一个不错的格式化值,而不是__repr__。用于提高可读性。来自文档:
str(t) Returns a string in the form [D day[s], ][H]H:MM:SS[.UUUUUU],
where D is negative for negative t. (5)
>>> datetime.timedelta(seconds = 42).__repr__()
'datetime.timedelta(0, 42)'
>>> datetime.timedelta(seconds = 42).__str__()
'0:00:42'
Checkout文档: