1 life 2 live

파이썬 기초 프로그래밍(10) - 모듈 프로그래밍 [20.7.30] 본문

파이썬

파이썬 기초 프로그래밍(10) - 모듈 프로그래밍 [20.7.30]

대희투 2020. 7. 30. 16:50

1. 모듈 개요

■ 함수의 필요성?

   º 동일/유사한 패턴의 코드를 함수로 선언

   º 함수의 동작이 필요한 곳에서 함수 호출을 통해 해당 동작 활용!

   º 즉, 유사 동작이 필요 할 때마다 동일한 코드를 작성할 필요 없음

 

■ 특정 파일 안에 선언된 함수!

   º 해당 파일 안에서는 언제든지 선언한 함수를 호출하여 사용 가능!

 

■ 만약 서로 다른 파일에서 동일한 함수가 필요하다면?

   º my_sum() 함수의 동작이 두 개의 서로 다른 과제에서 필요하다면?

 

■ my_sum()의 기능을 위하여 각 파일에 동일한 함수 선언?

 

■ my_sum() 기능이 필요하면 모든 파일에서 동일한 함수를 매번 선언해서 사용해야만 하는가?

 

■함수는 한 번만 작성하고 함수의 기능이 필요하면 호출하여 사용하자!

   º 함수가 선언된 파일 뿐만 아니라,

   º 다른 파이썬 프로그램에서도 사용 할 수 있도록 하려면?

 

■ 모듈

   º 함수나 변수 또는 클래스 들을 모아 놓은 파일!

   º 다른 파이썬 파일에서 모듈을 불러들여 사용 할 수 있다!

 

■ 모듈 흐름

 

2. 모듈 불러오기

■ import 구문

   º 호출방법: import <모듈명>

   º 모듈을 불러오기 위한 구문

   º 예) import random

 

■ 다시, 모듈이란?

   º 함수나 변수 또는 클래스 들을 모아 놓은 파일!

   º 우리가 지금까지 하던 것과 다를바 없지 않은가?

 

■ sum_module.py 파일 생성

   º my_sum() 함수 선언

 

■ sum_module 불러오기

   º test.py에서 import sum_module 선언

   º 모듈명은 파이썬 파일 이름에서 .py를 제외하면 됨!

 

3. 모듈 시작점 분기

■ 모듈 시작의 원인 알려주기

   º 메인 프로그램으로서 시작 된 것인지?

   º 다른 프로그램에 의하여 로딩(불러오기) 된 것인지?

 

■ __name__  변수 사용하기

   º 모듈이 시작된 원인에 따라 저장되는 값이 달라진다!

   º 메인 프로그램으로서 시작되면?

      • __name__에는 “__main__”이 저장 됨

      • 일반적인 코드 진행부분이 정상적으로 실행되어야 함

   º 모듈 import에 의하여 불려졌다면?

      • __name__에는 모듈의 이름이 저장 됨

      • 일반적인 코드 진행 부분이 실행되면 안됨

 

■ __name__ 를 활용한 모듈 구성

 

■ 모듈에 복수개의 함수 선언하기

   º 일반적인 함수 선언과 전혀 다를 바 없음!

 

■ 모듈에 복수개의 함수 호출하기

   º 모듈명.모듈함수()의 형태로 호출!

 

■ from 모듈 import 함수 구문

   º 모듈명을 생략하고 함수 이름만으로 호출 할 수 있음!

 

■ from  모듈 import * 구문

   º 모듈의 모든 함수를 불러오기 위한 구문

 

4. 모듈 위치

■ 어디에 위치한 모듈이 import 될 수 있는가?

   º 파이썬은 아래 위치에서 모듈을 찾는다!

      1. 현재 디렉토리

      2. 환경변수 PYTHONPATH에 지정된 경로

      3. Python이 설치된 경로 및 그 밑의 라이브러리 경로

      4. 없으면 에러!

 

■ sys.path

   º 모듈을 찾기 위한 경로가 저장되는 변수

   º sys 모듈의 path 변수

      • sys.path는 리스트 메소드들을 이용하여 직접 수정 할 수 있음

 

■ 현재 프로그램의 모듈 검색 경로 출력

 

■ C:\를 모듈 검색 경로에 추가하기

   º 현재 폴더의 sub_module.py를 c:\로 이동!

 

5. 다양한 모듈

■ os: os 자원과 관련된 기능

■ time: 시간 관련 기능

■ calendar: 달력 관련 기능

■ random: 난수 발생 기능

■ sys: 파이썬 인터프리터 관련 기능

■ pickle: 데이터 저장/로드 기능

 

6. 정리

■ 모듈

   º 기본 연산 및 인덱싱/슬라이싱이 가능

   º 리스트 메소드들을 활용하여 효율적인 프로그래밍 가능!

728x90
반응형
Comments