为什么这个Python操作返回一个元组?
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
看了你的图片后:
我觉得你可能以为它是一个字符串,因为print
输出的是字符串——这正是它的工作!这个对象其实是一个datetime
类型。你不能通过把它传给date()
构造函数来转换成date
类型,而是应该调用a.date()
。
5
也许你对这个表示方式感到困惑:
>>> a
datetime.date(2010, 10, 8)
这不是一个元组,而是datetime模块用来表示的方式。你可以打印出来,看看它的字符串表示:
>>> print a
2010-10-08
你可以自己用str()来转换,或者使用a.strftime()来进行你自己的格式化。