[파이썬] 파이썬 2와 파이썬 3의 모듈 임포트 차이

파이썬 2와 파이썬 3는 모듈 임포트에 일부 다른 점이 있습니다. 모듈 임포트는 다른 코드나 라이브러리를 현재 스크립트에 가져오는 방법입니다. 파이썬 2와 파이썬 3에서 모듈을 임포트하는 방법에는 몇 가지 차이가 있으므로 이를 알아봅시다.

1. __future__ 모듈 사용

파이썬 2에서는 파이썬 3의 일부 기능을 미리 체험하기 위해 __future__ 모듈을 사용할 수 있습니다. 이 모듈을 사용하면 파이썬 3의 모듈을 파이썬 2에서 사용할 수 있게 됩니다. 예를 들어, 파이썬 2에서 파이썬 3의 print 함수를 사용하려면 다음과 같이 작성할 수 있습니다:

from __future__ import print_function
print("Hello, World!")

2. 모듈 이름 변경

파이썬 3에서는 일부 모듈의 이름이 변경되었습니다. 가장 대표적인 예는 urllib 모듈입니다. 파이썬 2에서는 urllib2 모듈을 사용하였지만, 파이썬 3에서는 urllib.request 모듈을 사용합니다. 따라서 파이썬 2와 파이썬 3 모두에서 모듈을 사용할 때 이름을 올바르게 지정해야 합니다.

# 파이썬 2
import urllib2

# 파이썬 3
import urllib.request

3. print 함수

print 함수도 파이썬 2와 파이썬 3에서 다르게 작동합니다. 파이썬 2에서는 print 문을 사용하고 파이썬 3에서는 print() 함수를 사용합니다. 따라서 파이썬 코드를 호환성 있게 작성하기 위해서는 print 함수를 사용해야 합니다.

# 파이썬 2
print "Hello, World!"

# 파이썬 3
print("Hello, World!")

4. xrange 대신 range 사용

파이썬 2에서는 xrange 함수를 사용하여 반복 범위를 생성합니다. 하지만 파이썬 3에서는 xrange 대신 range 함수를 사용합니다. 따라서 파이썬 2와 파이썬 3 모두 호환성을 유지하기 위해 range 함수를 사용해야 합니다.

# 파이썬 2
for i in xrange(10):
    print(i)

# 파이썬 3
for i in range(10):
    print(i)

5. input 대신 raw_input 사용

파이썬 2에서는 사용자로부터 텍스트를 입력 받을 때 raw_input 함수를 사용합니다. 그러나 파이썬 3에서는 raw_input 대신 input 함수를 사용합니다. 따라서 호환성을 유지하기 위해서는 raw_input 대신 input 함수를 사용해야 합니다.

# 파이썬 2
name = raw_input("이름을 입력하세요: ")

# 파이썬 3
name = input("이름을 입력하세요: ")

파이썬 2와 파이썬 3의 모듈 임포트 차이점을 알아보았습니다. 이러한 차이를 이해하고 코드를 작성하면 파이썬 2와 파이썬 3 모두에서 동작하는 호환성 있는 코드를 만들 수 있습니다.