为什么Python的weekday()与C中的tm\u wday不同?

2024-04-25 20:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

Python文档将datetime.weekday()定义为an integer, where Monday is 0 and Sunday is 6,而C的tm.tm_wday定义为{a2}。因此tm_wday是{},这很不方便。考虑到Python通常坚持使用C语言的等价物,为什么要这样做呢?在


Tags: and文档ana2datetime定义isinteger
1条回答
网友
1楼 · 发布于 2024-04-25 20:35:41

这是Guido van Rossum第一次为pythonversion0.9.9创建time模块时的一个明确决定;original commit并没有解释为什么他做出这个选择,但是使用0表示从添加localtimegmtime函数的那一刻起,Monday就成为Python的一部分。请参阅早期修订版中的^{} function。在

我们得猜猜他为什么这么做。最有可能的是,Guido在工作日坚持使用ISO 8601约定,而不是C stdlib公约,可能是因为他是欧洲人,在那里Monday is the prevailing start if the week。另一个选择是他完全用另一种语言来模仿行为;Python的根是多样的,除了ABC,C和C++还包括模3。并不是后者使用这个约定;而是follows the C stdlib instead。在

请注意,他还为tm_mon值使用了不同的范围,从1到12,而不是使用0到11的C stdlib约定。在

无论如何,a question on comp.lang.python in 2000 about why ^{} uses 0 for Monday仍然没有得到答复。在

相关问题 更多 >