Programming/Python

파이썬2 와 파이썬3을 동시에 동작시키자 : __future__

매직블럭 2018. 1. 19. 09:50

파이썬2 버전에서 3버전으로 판올림 되면서 여러 부분에서 변화가 있었다.

문법들이 달라졌고 동일한 연산에 대한 결과값도 달라지고.. 등등...


그러나 한 어플리케이션을 만들면서 파이썬2 버전과 3버전에서 동시에 동작하도록 

상호호환성을 가지게 만들어 주는 방법이 있어서 기록.



__future__ 모듈


이 모듈은 파이썬2.x 에서 몇몇 기능들을 파이썬3.x 와 같이 사용 가능하게 만들어 주는 모듈이다.

흔히 사용되는 몇몇 기능은 아래와 같다.


print_function

  >>> print "hello", "world"

  hello world    # python 2.x

  SyntaxError: invalid syntax    # python 3.x


  >>> print ("hello", "world")

  ("hello", "world")    # python 2.x, 튜플이 출력 됨

  hello world    # python 3.x


  >>> from __future__ import print_function

  print ("hello", "world")

  hello world    # python 2.x & 3.x, 원하는 출력 가능.


Division

  >>> from __future__ import division    # python 3 스타일의 나누기 지원.


Absolute Import

  >>> from __future__ import absolute_import    # 표준 모듈과 동일한 이름의 로컬 모듈을 사용 가능하게 해줌.