loading
본문 바로가기
Python/기본(tip)

[Python 기본] import 와 From xx import 차이

by 원쿤짱쿤 2022. 7. 5.
반응형

import 와 From xx import의 차이 및 사용 방식.

 

 

import os

- os 모듈을 불러오는 것

 

from os import*

- os모듈로부터 모두(*) import

 

언뜻보면 같은 의미인 것 같습니다만 조금 다르답니다. 어떻게 다른지 결론부터 말씀드리면 아래와 같습니다.

 

한줄 요약

import만 사용하면 모듈 안의 함수를 사용할 때, 모듈명.함수명( )으로 하고, from을 사용하면 바로 함수명( )으로 사용

 

 

자세한 이해를 위해서 os 모듈의 listdir 함수를 사용하는 상황을 예로 설명드려보겠습니다.

 

모듈: os (운영체제에서 제공되는 여러 기능을 다룰 수 있는 파이썬 모듈)

모듈 내의 함수: listdir (현재 경로의 파일 또는 폴더의 리스트를 반환하는 함수)

 

 

case1. import os

 

- 현재 python 파일에서 listdir 함수를 사용 하려면 os.listdir( )이라고 입력해야함.

 

 

case2. from os import *

 

- 현재 python 파일에서 listdir 함수를 사용하려면 listdir( )만 사용하면 됨.

- 이때 주의할 점은 from으로 불러온 모듈에 같은 이름의 함수가 있으면 문제가 발생.

- 참고로, import *를 와일드 임포트(wild import)라고 부름.

 

 

case3. from os import listdir

 

- 하나의 함수만 가져오는 것도 가능. (함수 사용법은 case2와 같음)

- 와일드 임포트는 뜻하지 않게 기존의 변수나 함수를 덮어 쓸 때가 있을 수 있으므로 해당 방법이 바람직함.

   (그냥 공부할 때는 import *가 짱입니다)

 

 

알아두면 피가되고 살이되는 지식

 

1. 모듈 안에는 함수 뿐만 아니라, 변수나 클래스도 존재하고 이걸 가져다 쓸 수 있습니다.

''예시 : 인스턴스 생성에 아래와같이 다르게 적용해야함''

from openpyxl import Workbook
wb = Workbook()    # Workbook 클래스로 wb 인스턴스 생성

import openpyxl
wb = openpyxl.Workbook

 

2. 모듈은 누군가 만들어놓은 파이썬 파일(.py)이며, 이를 모아둔 폴더를 패키지라고 합니다.

 

대부분의 패키지는 그 안에 하위 패키지나 모듈을 가지고 있습니다. 이러한 하위 패키지 중에는 상위 패키지를 임포트할 때 자동으로 임포트되는 것도 있지만 자동으로 임포트되지 않는 것도 있습니다.

 

자동으로 임포트되지 않는 하위 패키지는 아래의 예처럼 수동으로 임포트 해야한다는 점 알아두시면 좋을 것 같아요.

 

import 패키지명.모듈명

import 패키지명.하위 패키지명

'Python > 기본(tip)' 카테고리의 다른 글

[Python 기본] 입출력 기본  (0) 2022.07.30
[Python 기본] return 사용이유.  (0) 2022.07.30