모듈과 패키지
모듈이란?
- 각종 변수, 함수, 클래스를 담고있는 파일
- 특정기능을 .py 파일 단위로 작성한것
패키지란?
- 여러 모듈을 묶은것
모듈 가져오기
구조
import 모듈 모듈.변수 모듈.함수() 모듈.클래스()
ex)
import math print(math.pi) #변수 print(math.sqrt(4)) #함수 --출력-- 3.141592653589793 2.0
pi는 math모듈에 저장되어있는 변수를 불러온다
sqrt는 루트를 계산해주는 함수이다.
import as로 모듈이름 지정
구조
import 모듈 as 이름
ex)
import math as m print(m.pi) #변수 print(m.sqrt(4)) #함수 --출력-- 3.141592653589793 2.0
from import 로 모듈의 일부 가져오기
구조
from 모듈 import 변수 from 모듈 import 함수 from 모듈 import 클래스 from 모듈 import 변수, 함수, 클래스 from 모듈 import *
from 모듈 import * 모듈의 모든 함수와 변수, 클래스를 가져온다.
ex)
from math import sqrt, pi print(pi) print(sqrt(4)) --출력-- 3.141592653589793 2.0
from import로 모듈을 가져오면 모듈의 이름을 붙이지 않고 함수를 바로 사용할수 있다.
모듈 일부의 이름 지정
from 모듈 import 변수 as 이름 from 모듈 import 함수 as 이름 from 모듈 import 클래스 as 이름 from 모듈 import 변수 as 이름1, 함수 as 이름2, 클래스 as 이름3
ex)
from math import sqrt as s, pi as p print(s(4)) print(p) --출력-- 2.0 3.141592653589793
sqrt함수의 이름을 s로, pi변수의 이름을 p로 지정할수 있다.
모듈 만들기
base = 2 def sq(n): return base ** n
-> asdf.py로 저장한다
- 스크립트 파일에서 확장자 .py를 제외하면 모듈 이름이 된다.
import asdf print(asdf.base) print(asdf.sq(10)) --출력-- 2 1024
위에서 만들었던 asdf모듈을 불러온다
asdf.base를 출력하면 asdf의 base변수인 2가 출력된다
sq함수는 2의 n제곱을 출력하기때문에 2의 10제곱인 1024을 출력한다.
from asdf import * print(base) print(sq(10)) --출력-- 2 1024
from import 로도 표현할 수 있다.
모듈 클래스
class Person: def __init__(self, name, age, add): self.name = name self.age = age self.add = add def hi(self): print("안녕하세요 저는 {}입니다".format(self.name))
-> pa.py 파일료 저장한다
import pa a = pa.Person('마리아', 20, '서울특별시') a.hi() --출력-- 안녕하세요 저는 마리아입니다
클래스를 pa파일에 저장해두고 main파일에서 불러온다.
from pa import Person a = Person('마리아', 20, '서울특별시') a.hi() --출력-- 안녕하세요 저는 마리아입니다
from import 로도 표현할 수 있다.
패키지
폴더 안에 __init__.py파일이 있으면 해당 폴더를 패키지로 인식된다.
1. Calcpkg폴더를 만든뒤에 __init__.py파일을 저장한다(비워놔도 됨)
2. Calcpkg폴더 안에 덧셈, 곱셈함수가 들어있는 oper.py와 삼각형, 사각형의 넓이계산함수가 들어있는 geom.py를 저장한다.
def add(a,b): return a+b def mul(a,b): return a*b
->oper.py
def triangel_area(base, height): return base * height / 2 def reat_area(width, height): return width * height
->goem.py
패키지 바깥에 main.py를 저장한다.
import Calcpkg.oper import Calcpkg.geom print(Calcpkg.oper.add(10,20)) print(Calcpkg.oper.mul(10,20)) print(Calcpkg.geom.triangel_area(30,40)) print(Calcpkg.geom.reat_area(30,40)) --출력-- 30 200 600.0 1200
->main.py
from Calcpkg.geom import * from Calcpkg.oper import * print(add(10,20)) print(mul(10,20)) print(triangel_area(30,40)) print(reat_area(30,40)) --출력-- 30 200 600.0 1200
from import 로도 표현할 수 있다.
'Emotion > 파이썬' 카테고리의 다른 글
예외처리 (0) | 2020.09.04 |
---|---|
클래스_2 (0) | 2020.09.02 |
클래스_1 (0) | 2020.09.01 |
함수_2 (0) | 2020.08.26 |
파이썬 함수_1 (0) | 2020.07.08 |