Information Security
Module 본문
Module
-함수나 변수 또는 클래스들을 모아 놓은 파일이다.
-다른 사람이 작성해 놓은 모듈이나 파이썬이 기본적으로 제공해주는 라이브러리를 가져와서 사용할 수 있다.
(우리가 직접 만들어서 사용할 수도 있다.)
Module 구성
-모듈은 python 파일 단위로 구성된다.
-파일의 이름이 모듈의 이름이 된다.
-파일에 포함된 python 함수와 변수가 모듈의 요소가 된다.
Module 만들기
-idle에서 [New File]을 누르고 모듈을 작성한다.
-파일의 이름은 파일이름.py로 저장한다.
-모듈 mod_test 을 만들었다.
Module 사용하기
-Module 사용법: import 모듈_파일_이름
-Module 안의 요소(변수, 함수, 클래스) 사용법: 모듈_이름.요소_이름
-모듈 mod_test 을 만들었고, 이 모듈을 불러오기 위해서는 "import mod_test" 라고 입력해야 한다.
-import는 현재 디렉터리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다.
Module 사용 예제
Module 사용하기2
사용법: from 모듈_파일_이름 import 모듈_함수_이름, 모듈_변수
-모듈 요소 중에서 필요한 요소들만 가져오는 방법
-변수 mod_int는 import 문에 추가해 주지 않았기 때문에 사용할 수 없어서 에러가 발생한다.
-이렇게 import 문에 요소들을 추가하여 사용할 수 있게 되었다.
-그런데 import 문에 요소를 너무 많이 추가하면 복잡해지고 모듈 안의 모든 요소를 알고 있어야 해서 불편하다.
-import 문에 '*'을 쓰면 모듈 안의 모든 요소를 가져올 수 있다.
-"from mod_test import *"는 "import mod_test"와 같다.
그런데 굳이 "from mod_test import *"를 사용하는 이유가 있다.
"import mod_test"를 사용하면 모듈의 요소를 사용할 때마다 앞에 일일이 "mod_test."을 붙여줘야 해서(import 문은 여러 개를 한 번에 쓸 수 있기 때문에 모듈을 구분하기 위하여) 타이핑할 것이 많아져서 번거롭기 때문이다..
Module 안에 클래스 작성하기
Module 파일의 동작
-위와 같이 작성하고 실행하면 결과 값이 반복하여 출력된다. add_mul 파일을 직접 실행하여, import 해서 모듈로 사용하여 얻은 당연한 결과이지만 이 결과들이 파일을 직접 실행한 결과인지 import 해서 모듈로 사용하여 얻은 결과인지 구분할 수 없다.
-__name__ 변수는 파일의 이름을 저장한다.
-import 하지 않고 파일을 직접 실행한 경우 인터프리터는 __name__변수에 "__main__"이라는 값을 넣어준다.
-모듈을 import 하여 사용하였다면 __name__변수에 모듈의 파일명이 들어간다.
- if __name __== ("__main__")은 add_mul 파일을 직접 실행할 때 참이 되어 조건문 안의 코드가 수행된다.
그런데 import 하여 모듈로 사용했을 때는 __name__에 파일 이름인 add_mul이 저장되기 때문에 거짓이 되어 조건문 안의 코드가 수행되지 않는다.