Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python의 from...import * 문 완벽 이해: 모듈 전체 임포트 방법과 주의사항

Python에서 from...import * 문이란?

Python의 from 모듈 import * 문은 특정 모듈에 포함된 모든 함수와 변수를 한 번에 가져오는 데 사용됩니다. 예를 들어, math 모듈의 모든 함수를 가져오면서 호출할 때마다 math. 접두어를 붙이고 싶지 않다면 다음과 같이 작성할 수 있습니다.

>>> from math import *>>> sin(0)0.0>>> cos(0)1.0

위 예제에서는 math.sin(0)이라고 쓰지 않고 sin(0)처럼 함수 이름만으로 바로 호출할 수 있습니다. 즉, 임포트된 함수들이 마치 현재 파일에 정의된 것처럼 동작합니다.

from...import * 사용 시 주의사항

다만 어느 정도 규모가 있는 코드에서는 import * 사용을 피하는 것이 좋습니다. 이 문법을 사용하면 해당 임포트가 모듈에 사실상 고정되어 나중에 제거하기 매우 어려워집니다. 코드에서 사용되는 항목이 어떤 모듈에서 왔는지 파악하기 힘들어지기 때문에, 더 이상 그 임포트가 필요 없다고 판단하는 시점에도 실제로 안심하고 삭제하기가 쉽지 않습니다.

또한 import *는 본질적으로 네임스페이스(namespace)를 어수선하게 만듭니다. 외부 모듈의 수많은 이름이 현재 코드 공간에 그대로 들어오기 때문에, 자신의 모듈에서 변수나 함수 이름을 지을 때 선택 가능한 범위가 크게 줄어들고, 의도치 않은 이름 충돌로 인한 버그가 발생할 위험도 높아집니다.

권장되는 대안

코드의 명확성과 유지보수성을 위해서는 다음과 같은 방식을 사용하는 것이 좋습니다.

  • 필요한 항목만 명시적으로 임포트: from math import sin, cos
  • 모듈 전체를 임포트 후 접두어 사용: import mathmath.sin(0) 형태로 호출

이렇게 하면 각 함수와 변수의 출처가 코드상에서 명확히 드러나 가독성이 향상되고, 이름 충돌 문제도 예방할 수 있습니다.