모듈 이해
모듈은 재사용을 하고자 하는 변수나 함수의 정의문들을 파일로 저장하여 특정 파이썬 파일리아 파이썬 쉘 환견에서 호출하여 사용할 수 있는 방법을 제시한다. 이러한 모듈들을 특정 기준에 따라 모아 놓은 단위를 패키지지라 한다.
모듈 impoirt 시
from 모듈명 import 이름 : 함수명만으로도 함수를 호출할 수 있다.
import 모듈명 as 약어 : 약어로 해당 모듈을 사용할 수 있다.
import 모듈명
2개의 파일을 살펴보자.
main.py
1
2
3
4
5
6
|
메인 파일이다. math 모듈을 사용할 수 있으며 여기서 제공하는 pi를 사용하여 원주율의 값을 사용할 수 있다. 그리고 바로 아래 fib파일을 import하였다. 이 fib 파일이 어떻게 되어 있는지 보자.
fib.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
def f(n):
if(n == 0): return 0
if(n == 1): return 1
else: return f(n-2) + f(n-1)
def f2(n):
arr = []
a,b=0,1
while(b<n):
a,b = b,a+b
return arr
if __name__ == "__main__": #외부에서 호출 시
import sys
|
fib파일은 위와 같다. 메인파일을 실행하면 fib파일에 있는 함수 f와 f2를 사용할 수 있다. 결과는 아래와 같다.
메인 파일에서 from fib import f,f2 로 결과를 확인할 수 있다. 아래 코드로 확인해보아라.
import math
from fib import f,f2
print(math.pi)
print(f(6),f2(6),end='\n')
fib파일의 마지막은 처음부는 부분일 것이다. 이것은 파이썬이 구동되지 않는 상황에서 해당 모듈을 실행하려 할때, 처리하는 방안이다.
fib파일의 '__name__' 이라는 변수가 __main__ 이라는 뜻은 파이썬이 외부에서 호출되었음을 의미한다. __name__ 은 현재 모듈의 이름을 담고 있는 내장변수이고 이 프로그램을 직접 실행하면 __name__ 은 __main__ 이 되어 실행되지만 외부에서 실행할 경우 해당부분은 실행되지 않는다. 이것은 어떤 모듈을 직접 실행이 아닌 import할 때 불필요한 부분이 실행될 수 있다. 이를 방지하기 위해 사용한다.
즉, import한 모듈의 필요한 부분만을 사용할 때 사용한다고 이해하면 좋다.
fib 파일을 다음과 같이 수정하고 실행해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
def f(n):
if(n == 0): return 0
if(n == 1): return 1
else: return f(n-2) + f(n-1)
def f2(n):
arr = []
a,b=0,1
while(b<n):
a,b = b,a+b
return arr
print("fib파일입니다.")
|
'python' 카테고리의 다른 글
[python] 람다식(lambda) map (0) | 2019.08.26 |
---|---|
[python] 파이썬 클래스 실습 및 정규식예제 (0) | 2019.08.26 |
[python] 파이썬 클래스 (0) | 2019.08.13 |
[python] 파이썬 함수, Type(리스트, 튜플, dictionary) (0) | 2019.08.13 |
[python] 파이썬 제어문 (0) | 2019.08.12 |