# 패키지 예제 # 상대경로 # 사용 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))) p.prt1() p.prt2()
# Section08 # 파이썬 모듈과 패키지 # 패키지 예제 # 상대 경로 # ..: 부모 디렉토리 # . : 현재 디렉토리 # 사용 1(클래스) from pkg.fibonacci import Fibonacci # ,를 통해서 여러개를 불러올 수 있음 Fibonacci.fib(300) 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) # 인스턴스초기화 후 사용 print() # 사용3(클래스) from pkg.fibonacci import Fibonacci as fb # 이름을 바꿀 수 있음 fb.fib(500) print("ex3 : ", fb.fib2(600))
# 파이썬 모듈과 패키지 # 패키지 예제 # 상대 경로 # .. : 부모 디렉토리 # . : 현재 디렉토리 # 사용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 fb.fib(1000) print('ex3: ', fb.fib2(1100)) print('ex3: ', fb().title)
# 모듈: 파일 하나하나 # 패키지: 모듈들을 디렉터리 구조적으로 관리하는것 # 패키지 예제 # 상대 경로 # .. : 부모 디렉토리 # . : 현재 디렉토리 # 파일 이름이 중요 : 파일 이름을 통해서 모듈이 어떤 역할을 하는지 알아야되기 때문에 네이밍 중요 # 사용1(클래스) from pkg.fibonacci import Fibonacci Fibonacci.fib(300) print("ex2: ", Fibonacci.fib2(400)) print("ex2: ", Fibonacci().title) # 사용2(클래스) // 권장하지는 않는다 메모리를 많이 씀 from pkg.fibonacci import * print("ex2: ", Fibonacci.fib2(500)) print("ex2: ", Fibonacci().title) # 사용3(클래스) from pkg.fibonacci import Fibonacci as fb fb.fib(1000) print("ex3: ", fb.fib2(400)) print("ex3: ", fb().title)
# section08 # 파이썬 모듈과 패키지 # 패키지 예제 # 상대 경로 # .. : 부모 디렉토리 # . : 현재 디렉토리 # 사용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(300) print("ex2 : ", Fibonacci.fib2(600)) print("ex2 : ", Fibonacci().title) # 인스턴스화 하고 호출 # 사용3(클래스, 권장) from pkg.fibonacci import Fibonacci as fb # alias 만들어줌 fb.fib(1000)
# . : 현재 디렉토리 # 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) print("ex2 : ", fb.fib2(600)) print("ex2 : ", fb().title) # 인스턴스 생성후 참조
# 모듈과 패키지 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 # 상대 경로 패키지 # .. : 부모 디렉토리 # . : 현재 디렉토리 # 패키지 : 모듈들을 디렉토리를 구조적으로 관리(폴더) # 모듈 : # 사용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(클래스) from pkg.fibonacci import Fibonacci as fb fb.fib(500) # 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
# section08 # 파이썬 모듈과 패키지 # 패키지 예제 # 상대 경로 # .. : 부모 디렉토리 # . : 현재 디렉토리 from pkg.fibonacci import Fibonacci # class method 형태로 받을 수 있음 Fibonacci.fib(300) print("ex1 : ", Fibonacci.fib2(400)) print("ex1 : ", Fibonacci().title) #instance로 초기화 해줘야지 method 호출 가능하므로 Fibonacci()로 함 print() # 사용 2 from pkg.fibonacci import * # 전부 ㄷㅏ 가져오는 방법. 권장하진 않음. print("ex2 : ", Fibonacci.fib2(400)) print("ex2 : ", Fibonacci().title) print() # 사용 3 from pkg.fibonacci import Fibonacci as fb # 이건 권장하는 방법. 매번 길게 작성 안 해도 됨 fb.fib(1000)
# Section08 # 파이썬 모듈과 패키지 # 패키지 예제 # 상대경로 # 사용1(클래스) from pkg.fibonacci import Fibonacci Fibonacci.fib(300) print("Ex1 : ",Fibonacci.fib2(400)) print("Ex1 Title: ", Fibonacci().title) # 사용2 (클래스 / 권장 X) from pkg.fibonacci import * # 리소스낭비 이기에 권장하지 않음 Fibonacci.fib(500) print("Ex2 : ",Fibonacci.fib2(500)) print("Ex2 Title: ", Fibonacci().title) # 사용3 (클래스 / alias / 권장 O) from pkg.fibonacci import Fibonacci as fb fb.fib(500) print("Ex3 : ",fb.fib2(500))