파이썬

6주차, 모듈, 패키지 정리, __name__

호놀롤루 2022. 1. 25. 01:51

모듈은 함수나 변수, 클래스를 모아놓은 파일이다. 모듈은 다른 파이썬 프로그램에서

불러와 사용할 수 있게끔 만든 파이썬 파일이라 할 수 있다.

 

모듈의 종류

 표준 모듈: 파이썬과 함께 따라오는 모듈

 사용자 생성 모듈: 프로그래머가 직접 작성한 모듈

 서드 파티 모듈: 파이썬 재단도, 프로그래머(본인)도 아닌 다른 프로그래머 또는

업체에서 제공한 모듈

 

외부 모듈을 사용할 수 있도록 하는 방법은 import 파일명

확장자는 생략하고 파일에 있는 변수나 함수는 파일명.변수 또는 파일명.함수()로 호출가능

 

 

모듈은 만들기 쉽다.

variable = 3

def addition(x, y):

    return(x,y)

 

라 정의하고 이름을 func1.py라 저장한 뒤 불러보자

 

import func1 이라고 해도 모듈을 못찾을 것이다.

일단

import sys

sys.path

 

를 해보면 지금 연결된 경로가 나올 것이다. func1이 있는 디렉토리를 path에 추가하면

(sys.path.append('/경로'))

func1을 import할 수 있고, func1.addition(변수, 변수)의 형태로 함수를 불러올 수 있다.

 

만약 모듈에서 가져오고 싶은 함수의 수가 적으면 다 가져올 필요가 없다.

from func1 import addition

의 형태로 가져와도 된다.

그리고 가져올 때 as 로 앨리어스를 주면 편하게 조작할 수 있다.

 

sys.path를 쳤을 때 여러 경로가 나오는데 그 순서도 중요하다. 같은 이름의 모듈이 있을 경우

먼저 나오는 모듈을 사용한다.

 

__name__ 변수란 파이썬이 내부적으로 사용하는 특별한 변수로, 현재 실행중인 파일의 이름은

__main__ 이라는 이름으로, 불러온 모듈의 이름은 __name__이란 이름으로 저장된다.

 

지금 돌리고 있는 파이썬 파일에서 print(__name__)을 하면 __main__이 나온다.

하지만 func1모듈의 addition함수에 print(__name__)을 넣으면 모듈의 이름인

func1이 반환된다.

 

 

패키지란 모듈들을 모아놓은 디렉토리다.

패키지에서 특정한 모듈을 가져올 때는

from my_package import my_module

과 같은 형식으로 불러오면 된다.

 

주의할 점으론 python3.3버전 이전에는 디렉토리가 패키지로 인정받기 위해서는 __init__.py

라는 파일이 내부에 있어야 했다.

 

모듈 안의 모든 내용을 불러올 때 와일드카드 *을 썼다.

그렇다면 패키지 안의 모든 모듈을 불러오려면 어떻게 써야할까

 

패키지 디렉토리 안에 __init__.py 라는 파일을 만들고 __all__ = ['모듈이름1', '모듈이름2']

이런 식으로 와일드카드 *로 부를 수 있는 모듈 이름들을 직접 지정해 줘야한다.

 

from 패키지 이름 import *

이걸로 모두 부를 수 있다.