파이썬의 print
함수에는 return 값이 없다. 그냥 바로 출력할 뿐이다. 만약 print
의 사용법을 그대로 차용하면서 print
의 결과값을 변수로 저장하고 싶다면, 사용자가 StringIO
클래스 기반 객체를 만들어 getvalue()
하면 된다. 그렇게 어렵지 않다. 아래가 그 예시이다.
from io import StringIO
def return_print(*message):
io = StringIO()
print(*message, file=io, end="")
return io.getvalue()
wow = return_print("하하", "호호", "히히")
print(wow)
하하 호호 히히
*message
와 같은 용법은 위치 기반 가변 인수를 참고하라.
중간의 print
함수에서 end=""
로 둔 이유는 그냥 print
는 기본적으로 줄바꿈을 포함하기 때문에 그것을 제외하기 위함이다. 이것 또한 입맛대로 해도 된다.