有没有办法指定 datetime.date
而不是这样的一天:
datetime.date(year=1900, month=1, day=None)
我有一个没有完整指定日期的数据集(有时只有年份和月份在其中)。我想用 datetime.date
来代表它,而不用做任何技巧。
最佳答案
“美丽胜于丑陋。明确胜于含蓄...” - Python's Philosophy
你不能通过内置的 datetime.date
来做到这一点。 Python datetime.date
没有函数签名,因为它不会放置日期值。也许是因为date
没有day
(of month) 在现实生活中自然是一个不完整的日期。
此外,由于 day
输入被视为 Integer
因此它必须具有值(value)。并且默认整数值 0 将导致日期表示错误(尽管用于计算 datetime
的内部机制可能会解决它),因为我们在现实生活中的 day
以 1 开头. 简而言之,datetime.date
做得很好(在使用安全方面)- 与其“显式优于隐式哲学”一致 - 不允许用户在没有调用的情况下调用它指定日期(即:通过暗示函数签名中需要什么,就像每个优秀的程序员都会做的那样)。
但是,您也可以在觉得烦人或没必要时创建自己的函数包装器。
编辑:
或者使用 Python 自己的包装器:
monthdate = functools.partial(datetime.date, day=1) #edit by ShadowRanger
对我来说,似乎最简单的做法是使用 current 内置函数并将 day
的值为 1。
datetime.date(1900, 1, 1)
很短的,1
有待补充
关于python - 在 Python 中指定没有日期的 datetime.date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34646025/