2016-11-21 1 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이 인쇄되는 이유는 무엇입니까?파이썬이 문자열 대신 정수를 반환하는 이유

+3

'5 : 30'은 정수가 아닙니다. – corn3lius

+2

따옴표는 문자열의 일부가 아니며, '5 : 30'은 int가 아닙니다. – depperm

답변

3

파이썬 프로그램을 작성할 때 파서가 문자열임을 알 수 있도록 문자열을 따옴표 안에 넣어야합니다. 그래서, 당신은

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

를 입력하지만 파이썬은 정말 문자열에 따옴표 자체를 저장하지 않습니다. 값이 5:30str 유형의 개체를 만듭니다. 문자열을 출력 할 때, 파이썬 파서가 작동하는 데 필요한 인용 부호가 아닌 값을 출력합니다.

파이썬 객체에는 두 가지 표시 방법이 있습니다. __str__은 예상되는 사람이 읽을 수있는 문자열을 반환하고 __repr__은 일반적으로 형식 정보가 포함 된 프로그래머 용 문자열을 반환합니다. 문자열의 경우 따옴표가 포함됩니다. 당신이 정말로 어떤 이유로 따옴표를 원하는 경우에, 당신은 repr

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

""'' 단순히 문자열을 구분되어 사용할 수 있습니다, 그들은 그것의 일부가 아니므로 인쇄되지 않습니다. 프로그램이 여기에 문자열을 올바르게 인쇄하고 있습니다.

PS는 (5:30 어쨌든 정수가 아닌) : print_timetime = '6:30'Clock의 시간 속성을 변경하도록되어 나도 몰라하지만 경우, 그것은 self.time = '6:30'을해야합니다. 현재 명령은 아무 효과가 없습니다.