2016-11-21 163 views
-9
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返回整數而不是字符串

+3

'5:30'不是一個整數。 – corn3lius

+2

引號不是字符串的一部分,「5:30」不是int – depperm

回答

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

""''只是劃定一個字符串,他們是不是它的一部分,因此不會被打印出來。 程序在此處正確地打印字符串。 (5:30是不是整數反正)

PS:我不知道,如果在print_timetime = '6:30'是應該改變的時間屬性,Clock,但如果是,應該是self.time = '6:30'。當前的指令沒有任何影響。

相關問題