반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석, 머신러닝 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.

업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART)나 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.

 

 

오늘은 모듈을 불러와서 사용할 때 입력해주는 import와 from의 의미에 대해서 알아보겠습니다.

 

여러분은 아마 python을 공부하시다가 import os 혹은 from os 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 인스턴스 생성

 

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

 

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

 

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

 

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

 

import 패키지명.모듈명

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

 

import sklearn.preprocessing

dir(sklearn.preprocessing)

 

반응형

+ Recent posts