본문으로 바로가기

#Python에서 #module 사용하기

category CAE/Enjoy Programming 2016. 3. 26. 19:22

■ [모듈을 만들고 사용하는 방법]

# mod1.py

def sum(a,b):

return a+b


위와 같이 파일 mod1.py를 만들어 저장하면 이 파일이 바로 모듈이 된다.

이 모듈을 파이썬에서 사용하려면


>>> import mod1 >>> print(mod1.sum(3,4)) 7



■ [모듈 함수를 사용하는 또 다른 방법]

때로는 mod1.sum, mod1.safe_sum처럼 쓰지 않고 그냥 sum, safe_sum처럼 함수를 쓰고 싶은 경우도 있을 것이다. 이럴 때는 "from 모듈이름 import 모듈함수"를 사용하면 된다.

from 모듈이름 import 모듈함수

from ~ import ~를 이용하면 위와 같이 모듈이름을 붙이지 않고 바로 해당 모듈의 함수를 쓸 수 있다. 다음과 같이 따라 해보자.

>>> from mod1 import sum
>>> sum(3, 4)
7

그런데 위와 같이 하면 mod1.py 파일의 sum 함수만 사용할 수 있다. sum 함수와 safe_sum 함수를 둘 다 사용하고 싶다면 어떻게 해야 할까?

2가지 방법이 있다.

from mod1 import sum, safe_sum

첫 번째 방법은 위와 같이 from 모듈이름 import 모듈함수1, 모듈함수2처럼 사용하는 방법이다. 콤마로 구분하여 필요한 함수를 불러올 수 있다.

from mod1 import *

두 번째 방법은 위와 같이 * 문자를 사용하는 방법이다. 07장에서 배울 정규 표현식에서 * 문자는 "모든것"이라는 뜻인데 파이썬에서도 마찬가지 의미로 사용된다. 따라서 from mod1 import *는 mod1.py의 모든 함수를 불러서 사용하겠다는 말이다.

mod1.py 파일에는 함수가 2개밖에 없기 때문에 위의 2가지 방법은 동일하게 적용된다.


■ if __name__ == "__main__": 의 의미

if __name__ == "__main__"을 사용하면 C:\Python>python mod1.py처럼 직접 이 파일을 실행시켰을 때는__name__ == "__main__"이 참이 되어 if문 다음 문장들이 수행된다. 반대로 대화형 인터프리터나 다른 파일에서 이 모듈을 불러서 사용할 때는 __name__ == "__main__"이 거짓이 되어 if문 다음 문장들이 수행되지 않는다.


■ 변수에 값을 할당하지 않고 선언만 하려면 어떻게 해야 할까요? 이럴 때는 파이썬의 None 타입이 있는데, 이것을 사용해서 초기화를 해주면 됩니다. 다른 언어에서의 NULL과 비슷한 의미입니다.



<reference: https://wikidocs.net/29 >

'CAE > Enjoy Programming' 카테고리의 다른 글

VS Code  (0) 2017.11.29
matplotlib import 시, 에러 발생 대처방법  (0) 2017.03.31
#Python #class에서 #self의 사용법  (0) 2016.03.26
Solve matrix equation Ax=b  (0) 2012.03.12
Interpolation 예제 - UnivariateSpline  (0) 2012.01.15