Python 기초
[Python/파이썬] 모듈 Module & 패키지 Package 차이와 사용법
파프리카_
2021. 1. 27. 19:43
728x90
반응형
🙋♀️ module vs package
- module : 파일
- package : 폴더
로 생각하면 간단하다!
활용 방법
import [module]
from [package] import [module]
추가 활용법
from [package].[package].[package].. import [module]
from [package].[module] import [module]
from [package] import [module] as [alias(별칭)]
예제
디렉토리 구조
module_practice/
check.py
my_algo.py
my_package/
__init__.py
math/
__init__.py
tools.py
👩🏫 __init__.py
?
python3.3 버전부터는
__init__.py
파일이 없어도 패키지로 인식합니다(PEP 420). 하지만 하위 버전 호환 및 일부 프레임워크에서의 올바른 동작을 위해__init__.py
파일을 생성하는 것이 권장됩니다.
module_practice/my_package/math/tools.py
pi = 3.14159265358979323846
e = 2.71828182845904523536
result = '울라울라'
def my_max(a, b):
if a > b:
return a
else:
return b
module_practice/check.py
# check.py
def odd(n):
return bool(n % 2)
def even(n):
return not bool(n % 2)
위 코드들을 모듈, 패키지화 하여 사용해보자
# 알고리즘 공부야
import check, random
from my_package.math import tools # my_package 패키지의 math 패키지의 tools 모듈 임포트
from my_package.math.tools import pi as tools_pi #my_package의 math의 tools의 pi 변수 임포트(tools_pi이름으로)
from my_package.math.tools import my_max ## my_package 패키지의 math 패키지의 tools 모듈의 my_max 함수 임포트
# from my_package.math.tools import * # 비권장됨!
pi = '이건 내가 꼭 필요한 변수야....'
print(pi, tools_pi)
# 이건 내가 꼭 필요한 변수야.... 3.141592653589793
# 현 모듈에서 지정한 변수가 나오고, import한 변수가 나온다.
print(dir(check)) # [..생략.. 'even', 'odd']
yewool_odd = check.odd
print(yewool_odd(10)) # False
print(dir(tools)) # [..생략.. 'e', 'my_max', 'pi', 'result']
print(tools.pi) # 3.141592653589793
print(pi) # 이건 내가 꼭 필요한 변수야....
print(my_max(5, 4)) # 5
728x90
반응형