python – 在datetime,为什么`year`是一个属性,但`weekday()`是一个函数?

我对这篇
Python 3脚本有疑问:

import datetime
d = datetime.date.today()

print(d.year)
print(d.weekday())

TIO

为什么d.year没有括号,但d.weekday()不是?为什么一个属性而另一个属性?

最佳答案 可能是因为在构造datetime.date对象时,year是必需的参数.在对象内不需要计算来访问年份值.看实现:

class date:
    def __new__(cls, year, month=None, day=None):
        ...

而工作日需要计算:

def weekday(self):
    "Return day of the week, where Monday == 0 ... Sunday == 6."
    return (self.toordinal() + 6) % 7
点赞