如何在更改前访问sum()的输出

2024-04-26 20:35:10 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我在一个交互提示下做这个,它会返回一种格式-我现在想要的格式。你知道吗

但是如果我把它赋给一个变量,然后像第二个例子一样打印或使用这个变量(和我的文件中的一样),它的格式就不同了。你知道吗

如何访问第一个输出-

非常感谢你的帮助。你知道吗

import datetime
tote = datetime.timedelta(0, 25200), datetime.timedelta(0, 25200)
sum(tote, datetime.timedelta(0))
datetime.timedelta(0, 50400)


import datetime
tote = datetime.timedelta(0, 25200), datetime.timedelta(0, 25200)
brac = sum(tote, datetime.timedelta(0))
print brac
14:00:00



import datetime
tote = datetime.timedelta(0, 25200), datetime.timedelta(0, 25200)
brac = sum(tote, datetime.timedelta(0))
print repr(brac)
datetime.timedelta(0, 50400)
datetime.timedelta.total_seconds(repr(brac))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: descriptor 'total_seconds' requires a 'datetime.timedelta' object but 
received a 'str'

Tags: 文件importmostdatetime格式例子timedeltatotal
2条回答

Python交互式shell使用repr()函数回溯表达式的结果,但是print使用str()将值转换为字符串。你知道吗

在这两种情况下sum()产生的结果都是完全相同的,但是在第一个示例中,您会看到解释器用repr()打印输出,在第二个结果中,您使用了print,结果被转换成了一个带有str()的字符串:

>>> import datetime
>>> tote = datetime.timedelta(0, 25200), datetime.timedelta(0, 25200)
>>> brac = sum(tote, datetime.timedelta(0))
>>> brac
datetime.timedelta(0, 50400)
>>> print brac
14:00:00
>>> repr(brac)
'datetime.timedelta(0, 50400)'

您不需要做任何其他事情;您已经将相同的结果分配给brac。你知道吗

当您说print brac时,您正在访问对象的字符串表示。您可能需要的是print repr(brac),它提供了第一个代码示例生成的格式。你知道吗

相关问题 更多 >