python

[python] 파이썬 모듈_Module

vhxpffltm 2019. 8. 26. 21:41

모듈 이해

모듈은 재사용을 하고자 하는 변수나 함수의 정의문들을 파일로 저장하여 특정 파이썬 파일리아 파이썬 쉘 환견에서 호출하여 사용할 수 있는 방법을 제시한다. 이러한 모듈들을 특정 기준에 따라 모아 놓은 단위를 패키지지라 한다.

 

모듈 impoirt 시

from 모듈명 import 이름  : 함수명만으로도 함수를 호출할 수 있다.
import 모듈명 as 약어  :  약어로 해당 모듈을 사용할 수 있다.

import 모듈명

 

2개의 파일을 살펴보자.

main.py

1
2
3
4
5
6
import math
import fib
print(math.pi)
 
print(fib.f2(6))
print(fib.f(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
    elsereturn f(n-2+ f(n-1)
def f2(n):
    arr = []
    a,b=0,1
    while(b<n):
        arr.append(b)
        a,b = b,a+b
    return arr
if __name__ == "__main__"#외부에서 호출 시
    import sys
    f(int(sys.argv[1])) #첫 번째 외부 인자 값을 사용하여 f 호출
 

 

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
    elsereturn f(n-2+ f(n-1)
def f2(n):
    arr = []
    a,b=0,1
    while(b<n):
        arr.append(b)
        a,b = b,a+b
    return arr
 
print("fib파일입니다.")