[파이썬] print의 결과를 변수에 저장하기

파이썬의 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는 기본적으로 줄바꿈을 포함하기 때문에 그것을 제외하기 위함이다. 이것 또한 입맛대로 해도 된다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to top