본문 바로가기
Algorithm/자료구조, 알고리즘

[코딩 + 알고리즘 완주반] 7일차. 모듈, 패키지

by newnu 2021. 3. 21.
반응형

# 모듈, 패키지

 

#패키지 생성

패키지 폴더 안에 __init__.py, fibonacci.py, prints.py, calculations.py 생성

# __init__.py

# 용도 : 해당 디렉토리가 패키지임을 선언한다.
# Python 3.x : 파일이 없어도 패키지 인식함 -> 하위호환 위해서 생성해놓는 것을 추천
#fibonacci.py

class Fibonacci:
    def __init__(self,title = "fibonacci"):
        self.title = title

    def fib(n):
        a,b = 0,1
        while a<n:
            print(a,end=' ')
            a,b = b,a+b
        print()

    def fib2(n):
        result = []
        a,b = 0,1
        while a<n:
            result.append(a)
            a,b = b,a+b
        return result
#prints.py

def prt1():
    print("I'm Niceboy!")

def prt2():
    print("I'm Goodboy!")   

# 단위 실행(독립적으로 파일 실행)
if __name__ == "__main__": # 다른 파일에서 실행할 경우 main이 아니기 때문에 실행 안됨
    prt1()
    prt2()
# calculations.py

def add(l,r):
    return l+r

def mul(l,r):
    return l*r

def div(l,r):
    return l/r
# 모듈 - 독립적인 기능을 제공
# 패키지 - 모듈을 모아놓은 것

# 패키지 예제
# .. : 부모 디렉토리
# .  : 현재 디렉토리

# 사용1(클래스)
from pkg.fibonacci import Fibonacci
Fibonacci.fib(300)

print("ex1 : ",Fibonacci.fib2(400))
print("ex1 : ",Fibonacci().title)

# 사용2(클래스) - 권장안함 메모리 많이 차지
from pkg.fibonacci import *

Fibonacci.fib(500)

print("ex2 : ",Fibonacci.fib2(600))
print("ex2 : ",Fibonacci().title)

# 사용 3(클래스) - 권장 (Alias)
from pkg.fibonacci import Fibonacci as fb

fb.fib(1000)
print("ex3 : ",fb.fib2(400))
print("ex3 : ",fb().title)

# 사용 4(함수)
import pkg.calculations as c

print("ex4 : ",c.add(10,100))
print("ex4 : ",c.mul(10,100))

# 사용 5 (함수)
from pkg.calculations import div as d

print("ex5 : ",int(d(100,10)))

# 사용 6
import pkg.prints as p
p.prt1()
p.prt2()

import builtins # 파이썬 내장 함수 # 기본으로 import 됨
print(dir(builtins))
반응형