본문 바로가기
Python/Python FAQ

Python sys.stdout.write와 print의 차이점은 무엇인가요?, The difference between sys.stdout.write and print?

by 베타코드 2023. 10. 16.
반응형

질문


어떤 상황에서 sys.stdout.write()print보다 선호될까요?

(예시: 더 나은 성능; 더 의미 있는 코드)


답변


print은 주어진 객체의 write 함수를 호출하고 입력을 형식화하는 역할을 하는 간단한 래퍼입니다. 기본적으로 이 객체는 sys.stdout입니다. 그러나 "chevron" 형태를 사용하여 파일을 전달할 수도 있습니다. 예를 들면:

print >> open('file.txt', 'w'), 'Hello', 'World', 2+3

참조: https://docs.python.org/2/reference/simple_stmts.html?highlight=print#the-print-statement


Python 3.x에서는 print가 함수가 되지만, file 인자를 사용하여 sys.stdout 이외의 다른 것을 전달할 수도 있습니다.

print('Hello', 'World', 2+3, file=open('file.txt', 'w'))

참조: https://docs.python.org/3/library/functions.html#print


Python 2.6+에서는 print는 여전히 문장이지만, 다음과 같이 함수로 사용할 수도 있습니다.

from __future__ import print_function

업데이트: Bakuriu가 댓글을 달아 함수와 문장 (그리고 더 일반적으로 함수와 문장 간) 사이에는 작은 차이가 있다는 것을 가리켰습니다.

인수를 평가하는 동안 오류가 발생할 경우:

print "something", 1/0, "other" # 1/0이 예외를 발생시키므로 "something"만 출력됩니다.

print("something", 1/0, "other") # 아무것도 출력되지 않습니다. 함수가 호출되지 않습니다.
반응형

댓글