为什么这个Python操作返回一个元组?

0 投票
4 回答
725 浏览
提问于 2025-04-16 05:15
from datetime import date
from datetime import timedelta

a = date.today() - timedelta(1)
# a above is a tuple and not datetime
# Since I am a C programmer, I would expect python to cast back to datetime
# but it is casting it to a tuple

你能告诉我为什么会发生这种情况吗?还有我怎么能看到上面的操作结果是一个日期时间?

我刚学Python,抱歉如果这个问题很简单,但我在这里卡住了很久!

谢谢

4 个回答

1

使用内置的 type 函数:

>>> from datetime import date
>>> from datetime import timedelta
>>> 
>>> a = date.today() - timedelta(1)
>>> a
datetime.date(2010, 10, 8)
>>> type(a)
<type 'datetime.date'>
>>> 
3

看了你的图片后:Python代码截图

我觉得你可能以为它是一个字符串,因为print输出的是字符串——这正是它的工作!这个对象其实是一个datetime类型。你不能通过把它传给date()构造函数来转换成date类型,而是应该调用a.date()

5

也许你对这个表示方式感到困惑:

>>> a
datetime.date(2010, 10, 8)

这不是一个元组,而是datetime模块用来表示的方式。你可以打印出来,看看它的字符串表示:

>>> print a
2010-10-08

你可以自己用str()来转换,或者使用a.strftime()来进行你自己的格式化。

撰写回答