문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
wiki:ai:python:모듈과_패키지 [2020/06/25 15:09] hylee 만듦 |
wiki:ai:python:모듈과_패키지 [2023/01/13 18:44] (현재) |
||
---|---|---|---|
줄 11: | 줄 11: | ||
> 현재 진행중인 프로젝트 안에 참조할 파일을 만든 뒤 진행하시면 됩니다. | > 현재 진행중인 프로젝트 안에 참조할 파일을 만든 뒤 진행하시면 됩니다. | ||
==== 준비 사항 ==== | ==== 준비 사항 ==== | ||
+ | === 패키지 폴더와 파일 만들기 === | ||
{{: | {{: | ||
- | === 준비 사항 | + | ==== 파일 내용 |
+ | === calculations.py === | ||
+ | <code python> | ||
+ | def add(l,r): | ||
+ | return l + r | ||
+ | |||
+ | def mul(l,r): | ||
+ | return l - r | ||
+ | |||
+ | def div(l,r): | ||
+ | return l/r | ||
+ | </ | ||
+ | === fibonacci.py === | ||
+ | <code python> | ||
+ | class Fibonacci: | ||
+ | def __init__(self, | ||
+ | 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 === | ||
+ | <code python> | ||
+ | def prt1(): | ||
+ | print(" | ||
+ | |||
+ | def prt2(): | ||
+ | print(" | ||
+ | |||
+ | |||
+ | # 단위 실행 ( 독립적으로 파일 실행 ) | ||
+ | # 이 파일이 잘 되어있는지 실행할수 있다. | ||
+ | if __name__ == " | ||
+ | prt1() | ||
+ | prt2() | ||
+ | </ | ||
줄 18: | 줄 67: | ||
==== 예제 코드 ==== | ==== 예제 코드 ==== | ||
<code python> | <code python> | ||
+ | # Section08 | ||
+ | # 파이썬 모듈과 패키지 | ||
+ | |||
+ | # 패키지 예제1 | ||
+ | # 상대 경로 패키지 | ||
+ | # .. : 부모 디렉토리 | ||
+ | # . : 현재 디렉토리 | ||
+ | |||
+ | # 사용1(클래스) | ||
+ | print("# | ||
+ | from pkg.fibonacci import Fibonacci | ||
+ | |||
+ | Fibonacci.fib(100) | ||
+ | |||
+ | print(" | ||
+ | print(" | ||
+ | print() | ||
+ | |||
+ | |||
+ | # 사용2(클래스) | ||
+ | print("# | ||
+ | from pkg.fibonacci import * | ||
+ | |||
+ | Fibonacci.fib(300) | ||
+ | |||
+ | print(" | ||
+ | print(" | ||
+ | print() | ||
+ | |||
+ | |||
+ | # 사용3(클래스) | ||
+ | print("# | ||
+ | from pkg.fibonacci import Fibonacci as fb | ||
+ | |||
+ | fb.fib(500) | ||
+ | |||
+ | print(" | ||
+ | print(" | ||
+ | print() | ||
+ | |||
+ | |||
+ | # 사용4(함수) : 파일 Alias | ||
+ | print("# | ||
+ | import pkg.calculations as c | ||
+ | |||
+ | print(" | ||
+ | print(" | ||
+ | print() | ||
+ | |||
+ | |||
+ | # 사용5(함수) | ||
+ | print("# | ||
+ | from pkg.calculations import div as d | ||
+ | |||
+ | print(" | ||
+ | print() | ||
+ | |||
+ | # 사용6 | ||
+ | print("# | ||
+ | import pkg.prints as p | ||
+ | import builtins # builtins는 기본으로 import 되어 있다. | ||
+ | |||
+ | p.prt1() | ||
+ | p.prt2() | ||
+ | print(dir(p)) | ||
+ | print(dir(builtins)) | ||
+ | print() | ||
줄 25: | 줄 141: | ||
==== 실행 콘솔 ==== | ==== 실행 콘솔 ==== | ||
<code console> | <code console> | ||
+ | #==== 클래스 사용 예제 1 ==== | ||
+ | 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 ==== | ||
+ | 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] | ||
+ | ex2 : fibonacci | ||
+ | |||
+ | #==== 클래스 사용 예제 3 ==== | ||
+ | 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 | ||
+ | ex3 : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] | ||
+ | ex3 : fibonacci | ||
+ | |||
+ | #==== import 함수 사용 예제 1 ==== | ||
+ | ex4 : 20 | ||
+ | ex4 : 6 | ||
+ | |||
+ | #==== import 함수 사용 예제 2 ==== | ||
+ | ex5 : 10 | ||
+ | |||
+ | #==== import 함수 사용 예제 3 ==== | ||
+ | I'm Niceboy! | ||
+ | I'm Goodboy! | ||
+ | [' | ||
+ | [' | ||
+ | ' |