본문 바로가기
Python/Python FAQ

Python 파이썬에서 __future__는 어떻게 사용되며 언제 사용해야 하는지, 그리고 어떻게 작동하는지에 대해 설명해주세요., What is __future__ in Python used for and how/when to use it, and how it works

by 베타코드 2023. 6. 25.
반응형

질문


__future__는 Python 모듈에서 자주 나타납니다. Python의 __future__ 문서를 읽은 후에도 __future__가 무엇인지, 어떤 경우에 사용해야 하는지 이해하지 못했습니다.

어떤 예제와 함께 설명해주시겠어요?

기본적인 __future__ 사용법에 대한 몇 가지 답변은 맞는 것 같습니다.

하지만, __future__가 어떻게 작동하는지에 대해 더 이해해야 할 것 같습니다:

제일 혼란스러운 개념은 현재 파이썬 릴리스가 미래 릴리스를 위한 기능을 포함하고 있다는 것과, 미래 릴리스에서 가져온 기능을 사용하는 프로그램이 현재 버전의 파이썬에서 성공적으로 컴파일될 수 있다는 것입니다.

저는 현재 릴리스가 미래를 위한 가능성 있는 기능을 포함하고 있다고 추측합니다. 그러나, 이러한 기능은 현재 표준이 아니므로 __future__를 사용해야만 사용할 수 있다는 것입니다. 제가 맞는지 알려주세요.


답변


__future__ 모듈을 포함시키면 호환되지 않는 변경 사항이나 새로운 키워드를 도입하는 변경 사항에 서서히 익숙해질 수 있습니다.

예를 들어, 컨텍스트 관리자를 사용하려면 2.5에서 with 키워드가 새로 도입되었으므로 더 이상 변수 이름으로 사용할 수 없으므로 from __future__ import with_statement을 수행해야 했습니다. Python 2.5 이하에서 with를 Python 키워드로 사용하려면 위에서 가져와야합니다.

또 다른 예는 다음과 같습니다.

from __future__ import division
print 8/7  # prints 1.1428571428571428
print 8//7 # prints 1

__future__ 없이는 두 개의 print 문 모두 1을 출력합니다.

내부적인 차이는 그 가져옴이 없으면 /__div__() 메소드로 매핑되고 가져옴이 있으면 __truediv__()가 사용된다는 것입니다. (어떤 경우에도 //__floordiv__()를 호출합니다.)

print와 관련하여: 3.x에서 print는 키워드로서의 특별한 속성을 잃어버리고 함수가됩니다. 그래서 그 반대입니다.

>>> print

>>> from __future__ import print_function
>>> print
<built-in function print>
>>>
반응형

댓글