查看日期时间文档,我似乎无法区分timedelta对象上使用的属性seconds
和方法total_seconds()
.它只是精确吗?从前者开始,int和后者是浮点数吗?或者我错过了什么?
Joh*_*nck 13
seconds
是一天内的秒数,即[0,86399]. total_seconds
是整个timedelta转换为秒,可以是任何值,例如604800.0一周,或0.1 100毫秒.
您可以timedelta
从天、秒、微秒、毫秒、分钟、小时和周构建一个。请注意这些参数的顺序,这绝对没有用,可能是历史造成的。
在内部,该timedelta
结构仅由天、秒和微秒组成。这些是您可以timedelta
在构建后访问的属性。即使您使用小时、分钟等来构建对象,该信息也会消失。
import datetime
t = datetime.timedelta(hours=2, minutes=30)
print(t.seconds)
Run Code Online (Sandbox Code Playgroud)
如果秒数大于 86400(24*60*60),它们将溢出到一天:
import datetime
t = datetime.timedelta(hours=24, minutes=1)
print(t.seconds)
print(t.days)
Run Code Online (Sandbox Code Playgroud)
因此,这timespan.seconds
是一个非常无用的属性,因为它只是真相的一部分,没有其他两个组成部分就毫无意义。这同样适用于timespan.days
和timespan.microseconds
。它们真的应该是内部的,从而遵守信息隐藏的原则。
total_seconds()
另一方面,是时间跨度的有效表示。它将所有 3 个属性合并为一个数字。
归档时间: |
|
查看次数: |
3053 次 |
最近记录: |