为什么Python返回整数而不是字符串

时间:2016-11-21 16:35:09

标签: python string class object integer

MAPS_TO

为什么打印Field而不是class Clock(object): def __init__(self, time): self.time = time def print_time(self): time = '6:30' print(self.time) clock = Clock('5:30') clock.print_time()

2 个答案:

答案 0 :(得分:3)

编写python程序时,需要将字符串放在引号内,以便解析器知道它们是字符串。所以,你输入

>>> time = 5:30
  File "<stdin>", line 1
    time = 5:30
            ^
SyntaxError: invalid syntax
>>>
>>> time = '5:30'
>>> 

但是python并没有真正将引号本身存储在字符串中。它创建了一个str类型的对象,其值为5:30。当你打印字符串时,它会输出值,而不是让python解析器工作所需的引用表示。

Python对象有两种显示方式。 __str__返回预期的人类可读字符串,而__repr__返回通常包含类型信息的程序员友好字符串。对于字符串,它包含引号。如果您出于某种原因确实需要引号,可以使用repr

>>> time = '5:30'
>>> print(time)
5:30
>>> print(type(time))
<class 'str'>
>>> print(repr(time))
'5:30'
>>> 

答案 1 :(得分:1)

""''只是分隔字符串,它们不是它的一部分,因此无法打印。 该程序正在这里正确打印字符串。 (5:30无论如何都不是整数)

PS:我不知道time = '6:30'中的print_time是否应该更改Clock中的时间属性,但如果是,则应该是self.time = '6:30'。当前指令没有任何效果。