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()
爲什麼打印5:30
而不是'5:30'
?爲什麼Python返回整數而不是字符串
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()
爲什麼打印5:30
而不是'5:30'
?爲什麼Python返回整數而不是字符串
當你編寫一個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'
>>>
""
和''
只是劃定一個字符串,他們是不是它的一部分,因此不會被打印出來。 程序在此處正確地打印字符串。 (5:30
是不是整數反正)
PS:我不知道,如果在print_time
time = '6:30'
是應該改變的時間屬性,Clock
,但如果是,應該是self.time = '6:30'
。當前的指令沒有任何影響。
'5:30'不是一個整數。 – corn3lius
引號不是字符串的一部分,「5:30」不是int – depperm