Information Security

Module 본문

Python

Module

leeeeye321 2017. 3. 28. 14:00

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이 저장되기 때문에 거짓이 되어 조건문 안의 코드가 수행되지 않는다.

 

 

 

 

 

 

 

 

 

 

 

 

'Python' 카테고리의 다른 글

예외 처리  (0) 2017.03.30
File  (0) 2017.03.29
Class  (0) 2017.03.24
입/출력  (0) 2017.03.22
함수(Function)  (0) 2017.03.21