- Python 기초 문법(Module과 Package)
Date:
모듈이란?
- 특정 기능을
.py
파일 단위로 작성한 것 - 여러가지 기능을 쉽게 사용할 수 있도록 도와줌
import로 모듈 수입하기
- import는 수입이라는 뜻으로 모듈
import
하나에 여러 모듈을 import할 수 있음- 모듈의 사용은 클래스와 비슷하게 사용할 수 있음
모듈.변수
,모듈.함수
형식으로 사용 가능함- 현재 파일에서 구동되는 모듈의
__name__
은__main__
으로 정해져있음 - 모듈 제작중 디버깅을 위한 실행 시
if __name__ == '__main__':
조건문을 활용하여 그 페이지에서만 동작할 수 있도록 함
import - as 모듈 이름 사용자 정의
- 모듈 import시 모듈의 이름이 길거나,사용자 편의의 문제로 변경할 수 있음
as
키워드를 사용하여 지정할 수 있음- Python에서 자주 자용하는 줄임표현이 있음(pandas - pd, numpy - np 등)
📰code
import pandas as pd
import math as m
from - import 부분 모듈 가져오기
- 모듈에서 필요한 기능, 모듈만 import함
from 모듈명 import 필요한기능/변수
- 모듈명을 알 수 없기 때문에 이런 방식으로는 현업에서 잘 안쓰임
📰code
from math import pi, sqrt #,exp
print(pi)
print(sqrt(2))
print(exp(1))
🔍result
모듈 만들기 (함수)
- 간단한 list 더하기 모듈 만들기
📰code sum_list.py
def sum_list(a=[],b=[]):
z=[]
for i,j in zip(a,b):
z.append(i+j)
return z
모듈 사용
from sum_list import sum_list
a=[1,2,3]
b=[5,4,3]
print(sum_list(a,b))
🔍result
[6, 6, 6]
모듈 만들기 (클래스)
📰code Person.py
class Person:
def __init__(self, name, age, address):
self.name = name
self.age = age
self.address = address
def greeting(self):
print("안녕하세요. 저는 {0}입니다.".format(self.name))
활용
import Person
tree = Person.Person('tree',28,'서울시')
tree.greeting()
🔍result
안녕하세요. 저는 tree입니다.
패키지란?
- 여러가지 모듈을 모아놓은 파일
import로 패키지 가져오기
import 패키지명.모듈명 형식으로
불러옴- package 폴더안에
__init__.py
파일이 있어야 패키지로 인식함
📰code main.py
from pkg_calculator.calc_mul import mul
from pkg_calculator.calc_add import add
print(add(1,2))
print(mul(2,10))
🔍result
3
20
📰code pkg_calculator\calc_mul
def mul(x,y):
return x*y
pkg_calculator\calc_add
def add(x,y):
return x+y
3-2 init.py 파일 활용하기
- package 내에 모듈들을 편하게 import하기 위해 init.py 안에서 미리 import 해놓을 수 있음
- 특이하게도 init.py안에서 함수까지 호출하더라도 함수를 바로 가져올 수 없었음
- 모듈명을 정확하게 지정해줘야 사용 가능함
init.py에서 모듈+함수 호출
📰code init.py
from .calc_add import add
from .calc_mul import mul
main.py
from pkg_calculator import *
print(calc_add.add(1,2))
print(calc_mul.mul(2,10))
print(dir())
🔍result
3
20
['__builtins__', '__file__', '__name__', '__nonzero__', 'calc_add', 'calc_mul']
init.py에서 모듈 호출
📰code init.py
from pkg_calculator import calc_add
from pkg_calculator import calc_mul
main.py
from pkg_calculator import *
print(calc_add.add(1,2))
print(calc_mul.mul(2,10))
print(dir())
🔍result
3
20
['__builtins__', '__file__', '__name__', '__nonzero__', 'calc_add', 'calc_mul']
📌reference
💡 수정 필요한 내용은 댓글이나 메일로 알려주시면 감사하겠습니다!💡
댓글