programing tip

__future__ import print_function을 사용하면 왜 Python2 스타일 인쇄가 중단됩니까?

itbloger 2020. 7. 17. 20:56
반응형

__future__ import print_function을 사용하면 왜 Python2 스타일 인쇄가 중단됩니까? [닫은]


파이썬으로 프로그래밍하는 데 익숙하지 않으며 구분 기호와 끝으로 인쇄하려고하지만 여전히 구문 오류가 발생합니다.

파이썬 2.7을 사용하고 있습니다.

내 코드는 다음과 같습니다.

from __future__ import print_function
import sys, os, time

for x in range(0,10):
    print x, sep=' ', end=''
    time.sleep(1)

그리고 여기 오류가 있습니다 :

$ python2 xy.py
  File "xy.py", line 5
    print x, sep=' ', end=''
          ^
SyntaxError: invalid syntax
$

우선, from __future__ import print_function스크립트의 첫 번째 코드 행이어야합니다 (아래에 언급 된 일부 예외는 제외). 둘째, 다른 답변에서 말했듯이 print지금 함수 로 사용해야 합니다. 그게 요점입니다 from __future__ import print_function. print 함수 를 Python 3에서 Python 2.6 이상으로 가져옵니다 .

from __future__ import print_function

import sys, os, time

for x in range(0,10):
    print(x, sep=' ', end='')  # No need for sep here, but okay :)
    time.sleep(1)

__future__명령문은 언어에 대한 기본 사항을 변경하기 때문에 파일의 맨 위에 있어야하므로 컴파일러는 처음부터 명령문에 대해 알아야합니다. 에서 문서 :

미래의 진술은 컴파일 타임에 특별히 인식되고 처리됩니다. 핵심 구문의 의미에 대한 변경은 종종 다른 코드를 생성하여 구현됩니다. 새로운 기능이 호환되지 않는 새로운 구문 (예 : 새로운 예약어)을 도입하는 경우도있을 수 있으며,이 경우 컴파일러가 모듈을 다르게 구문 분석해야 할 수도 있습니다. 이러한 결정은 런타임까지 푸시 될 수 없습니다.

문서는 또한 __future__명령문 앞에 올 수있는 유일한 것은 모듈 docstring, 주석, 빈 줄 및 기타 미래의 명령문이라고 언급합니다.

참고 URL : https://stackoverflow.com/questions/32032697/why-does-using-from-future-import-print-function-breaks-python2-style-print

반응형