class 만드는 중 def 질문합니다.
, 도리 도리님이 작성35강 심사문제 답에서
class Time:from_string 정의하는 부분에서
def __init__(self, hour, minute, second):
self.hour = hour
self.minute = minute
self.second = second
문의한 코드는 삭제합니다.
time_string = input()
if Time.is_time_valid(time_string):
t = Time.from_string(time_string)
print(t.hour, t.minute, t.second)
else:
print('잘못된 시간 형식입니다.')
return t를 빼먹어서 한참동안 고생했었습니다.
계속 t.hour이 None타입으로 받아대서 왜그런지 찾는다구..
근데, 오늘 그 다음강인 36강 배우는 찰나에 문득 어? 했는데요.
class Person:여기서는 왜 def 정의 후에
def greeting(self):
print('안녕하세요?')
james = Person()
james.greeting()
return print('안녕하세요?') 라고 하지 않나요?
* 참고로 그렇게 해봐도 값이 동일하게 나오더라구요.
** 여러가지 생각이 들지만..... 헷갈려서 정확한 답변을 받고 싶어서 질문합니다
수고많으십니다 ^^!!
(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 3월 3일, 화요일, 오후 3:49)
Re: class 만드는 중 def 질문합니다.
, 도장_ 관리자님이 작성return을 값을 반환하기 위해 사용합니다.
return '안녕하세요'
라고 되어 있다면
message = james.greeting()
print(message)
라고 써야 합니다.
return print('안녕하세요')
는 메시지를 출력하지만, 반환되는 것은 print 함수의 반환값입니다.
이는 결괏값을 받아서 직접 출력해보면 알 수 있습니다.
함수 안에서 메시지를 출력하는 것은 출력이고, 값을 반환하는 게 아닙니다. 따라서 그 값을 받아서 별도의 처리를 하지는 못합니다.
표면적으로 화면에 보이는 결과가 아니라 로직을 생각해야 합니다.