# Section08 # 파이썬 모듈과 패키지 # 패키지 예제1 # 상대 경로 패키지 # .. : 부모 디렉토리 # . : 현재 디렉토리 # 사용1(클래스) from pkg.fibonacci import Fibonacci Fibonacci.fib(100) print("ex1 : ", Fibonacci.fib2(200)) print("ex1 : ", Fibonacci().title) """ 0 1 1 2 3 5 8 13 21 34 55 89 ex1 : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144] ex1 : fibonacci """ # 사용2(클래스) - 메모리 많이 차지 하기 때문에 권장 X from pkg.fibonacci import * Fibonacci.fib(300) print("ex2 : ", Fibonacci.fib2(400)) print("ex2 : ", Fibonacci().title) """ 0 1 1 2 3 5 8 13 21 34 55 89 144 233 ex2 : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]
# Section08 # 파이썬 모듈과 패키지 # 패키지 예제 # 상대경로 # 사용 1 (클래스) import builtins import pkg.prints as p import pkg.calculations as c from pkg.fibonacci import Fibonacci as Fib from pkg.fibonacci import Fibonacci from pkg.calculations import div as d Fibonacci.fib(300) print("ex1 : ", Fibonacci.fib2(400)) print("ex1 : ", Fibonacci().title) # 사용 2 # from pkg.fibonacci import * (저 파일 class 전부다 , 권장 하지 않음) # 사용 3 Fib.fib(500) print('ex4 : ', c.add(10, 100)) print('ex5 : ', int(d(100, 10)))
# 파이썬 모듈과 패키지 # 패키지 예제 # 상대 경로 # .. : 부모 디렉토리 # . : 현재 디렉토리 # 사용1 (클래스 형태) from pkg.fibonacci import Fibonacci Fibonacci.fib(300) print("ex2 : ", Fibonacci.fib2(400)) # Fibonacci() 형태로 인스턴스화(클래스 생성)를 시켜줘야 __init__ 초기화 가능 print("ex2 : ", Fibonacci().title) # 사용2(클래스) 권장하진 않음, 메모리를 많이 사용 from pkg.fibonacci import * # 사용3(클래스) 별명 사용 from pkg.fibonacci import Fibonacci as fb # 사용4 (함수) import pkg.calculations as c print('ex4 : ', c.add(10, 100)) # 사용5 (함수) 함수 선택해서 가져오기 (추천) from pkg.calculations import div as d print('ex5 : ', int(d(100, 10)))
# - 모듈 사용 및 Alias 설정 # - 패키지 사용 장점 # Section 08 # 파이썬 모듈과 패키지 # 패키지 예제 # 상대 경로 # .. : 부모 디렉토리 # . : 현재 디렉토리 # 사용1(클래스) from pkg.fibonacci import Fibonacci Fibonacci.fib(300) print('ex1: ', Fibonacci.fib(300)) # none print('ex1: ', Fibonacci.fib2(400)) print('ex1: ', Fibonacci().title) # 사용2(클래스) from pkg.fibonacci import * # 해당 파일에 있는 모든 클래스를 import, 데이터 사용량이 많아서 잘 안씀 Fibonacci.fib(500) print('ex2: ', Fibonacci.fib2(600)) print('ex2: ', Fibonacci().title) # 사용3(클래스) : 이건 권장 from pkg.fibonacci import Fibonacci as fb
#모듈과 패키지 #모듈을 구조적으로 관리하는게 페키지. #패키지 예제 #상대경로 #.: 현재 디랙토리 #..: 부모디렉토리 # 사용1(클래스) from pkg.fibonacci import Fibonacci f = Fibonacci() f.fib(100) print("ex1 : ", f.fib2(200)) print("ex2 : ", Fibonacci().title) #인스턴스초기화 후 사용 #사용2 권장 하지 않음 #from pkg.fibonacci inmort * #사용3 #from pkg.fibonacci import Fibonacci as fb # f = fb() # f.fib(100) #사용4(함수) import pkg.calculations as c print("ex4: ", c.add(10, 100)) print("ex5: ", c.mul(10, 29))
# 패키지 예제 # 상대 경로 # .. : 부모 디렉토리 # . : 현재 디렉토리 # pkg 디렉토리에 fibonacci.py 파일에서 Fibonacci 클래스 참조 import builtins import pkg.prints as p from pkg.calculations import div as d # 필요한 함수만 가져옴 import pkg.calculations as c from pkg.fibonacci import Fibonacci as fb # 별칭 설정 from pkg.fibonacci import * # 모든 클래스를 가져오지만 리소스 낭비이다. from pkg.fibonacci import Fibonacci Fibonacci.fib(5) print("ex2 : ", Fibonacci.fib2(400)) print("ex2 : ", Fibonacci().title) # 인스턴스 생성후 참조 # 사용2(클래스) Fibonacci.fib(500) print("ex2 : ", Fibonacci.fib2(600)) print("ex2 : ", Fibonacci().title) # 인스턴스 생성후 참조 fb.fib(500)
# 모듈과 패키지 from pkg.fibonacci import Fibonacci Fibonacci.fib('', 300) print(Fibonacci.fib2('', 300)) print(Fibonacci().title) print() from pkg.fibonacci import Fibonacci as fb fb.fib('', 300) print(fb.fib2('', 300)) print(fb().title) print() import pkg.calc as c print(c.add(10, 100)) from pkg.calc import div as d print(int(d(100,11))) import pkg.prints as p import builtins p.prt1() p.prt2() print(dir(builtins))
# 파이썬 모듈과 패키지 # 패키지 예제 # 상대 경로 # .. : 부모 경로 # . : 현재 경로 # 모듈의 파일 이름이 중요, 파일 이름을 보고 가져옴! # 사용1(클래스) from pkg.fibonacci import Fibonacci Fibonacci.fib(300) print("ex1 : ", Fibonacci.fib2(200)) print("ex1 : ", Fibonacci().title) # 사용 2(클래스) from pkg.fibonacci import Fibonacci as fb # alias fb.fib(1300) print("ex2 : ", fb.fib2(2200)) print("ex2 : ", fb().title) # 사용 3(함수) import pkg.calculations as cal print("ex 3 : ", cal.add(10,100)) print("ex 3 : ", cal.mul(10,100)) # 사용 4(함수)
# Section08 # 파이썬 모듈과 패키지 # 패키지 예제1 # 상대 경로 패키지 # .. : 부모 디렉토리 # . : 현재 디렉토리 # 패키지 : 모듈들을 디렉토리를 구조적으로 관리(폴더) # 모듈 : # 사용1(클래스) from pkg.fibonacci import Fibonacci Fibonacci.fib(300) # 0 1 1 2 3 5 8 13 21 34 55 89 144 233 print("ex1 : ", Fibonacci.fib2( 400)) # ex1 : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] print("ex1 : ", Fibonacci().title) # ex1 : fibonacci # 사용2(클래스) # 메모리 많이 차지, 권장x from pkg.fibonacci import * Fibonacci.fib(400) # 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 print("ex2 : ", Fibonacci.fib2( 500)) # ex2 : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] print("ex2 : ", Fibonacci().title) # ex2 : fibonacci # 사용3(클래스)