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()
?
答案 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'
。当前指令没有任何效果。