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
你能告诉我为什么会这样吗?以及我如何看到上述操作导致日期时间?
我是一个蟒蛇新手,抱歉,如果这是一件微不足道的事情,但我被困在这里一段时间了!
由于
答案 0 :(得分:5)
也许你的代表混淆了你:
>>> a
datetime.date(2010, 10, 8)
这不是一个元组,它是datetime用作repr()的东西。打印它以获得其string()表示:
>>> print a
2010-10-08
str()自己明确地使用或使用a.strftime()来自己格式化。
答案 1 :(得分:3)
查看了您的图片:
我认为你假设它是一个字符串,因为print
输出一个字符串 - 但这正是它的工作!对象是 a datetime
。您也无法通过将其传递给date
构造函数将其转换为date()
,而是应该调用a.date()
答案 2 :(得分: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 :(得分:0)
您的陈述
date.today() - timedelta(1)
返回date个对象。
此对象有两个字符串表示形式:
最常见的可读格式是通过调用str()
函数(使用print进行调用),在这种情况下,str(a)
会为您提供'2010-10-08'
第二种表示,即对象性质,是使用repr()
函数。在这种情况下,repr(a)
会返回'datetime.date(2010, 10, 8)'
。