파이썬(python) – import 와 from import 의 차이
여러분은 python 을 공부하시다가 from os import open 과 같은 구문을 보신 적이 있나요 ?
저는 처음 이를 봤을 때 그게 무슨 의미인지 궁금하더군요.
이는 해석하면 os 모듈에 있는 open 이란 함수를 import 하겠다는 의미입니다.
이런 구문을 왜 사용하냐하면 open 이란 함수가 여러 모듈에 동시에 존재할 수 있기 때문입니다. 여러 모듈을 import 한 상태에서는 어떤 모듈의 open 을 사용할 것인지 모호하겠죠 ?
그래서, os 라는 namespace 이름을 주고 앞으로 open 이라고만 이름을 사용하면 그게 곧 os 모듈의 것이라는 의미입니다.
그렇지 않다면 os.open() 과 같이 모듈까지 지정해서 사용해야 합니다.
다음의 테스트 결과와 주석을 유심히 보십시오.
# os 모듈의 getpid 를 getpid 라는 이름으로 import # 현재 scope 에서는 os 라는 존재는 모르고 Traceback (most recent call last): # getpid 밖에 모름 # os 의 getpid 만 import 했으므로 getpgid 는 모름. Traceback (most recent call last): # os 를 통째로 import 한 것이 아니므로 getpgid 모름 Traceback (most recent call last): # os 를 import 하니 getpgid 함수도 사용가능 2541 |
from import 구문을 사용하면 해당 함수만 import 하여 모듈이름을 앞에 붙이지 않고도 사용할 수 있군요.
그렇다면 어차피 모듈이름도 없는거 alias 까지 지정할 수 있지 않을까요 ?
내가 지정하고 싶은 이름대로 사용할 수 있을 것 같은데 말이죠.
물론 가능합니다. ^^
# 끝에 as 와 alias name 을 붙인다. # 이제 원래 이름은 이해못함. Traceback (most recent call last): # alias name 으로만 사용가능 2552 |
두개 차이가 궁금했는데 속 시원하게 해결되었습니다!!! 소스 제일 처음부터 왜 이럴까…? 답답했는데 드디어 넘어가네요ㅠㅠ
덕분에 이해하고 갑니다.