모듈

2020. 12. 16. 03:23·study/python
반응형

파이썬에서는 스크립트 파일과 모듈은 거의 동급이다. '.py' 라는 확장자를 붙인 파일의 최상위 블록에 클래스를 정의하면 모듈 속에 클래스를 정의할 수 있다. import문이나 from문을 사용하면 모듈에 정의되어 있는 클래스를 import 할 수 있다.

 

예를 들어 'bookmark.py'라는 파일에 Bookmark 클래스를 정의했다고 하면, 즉 bookmark 모듈에 Bookmark 클래스를 정의하는 것이다. 외부의 파일로부터는 아래와 같이 클래스를 import해서 이용할 수 있다.

# bookmark 모듈을 임포트 함
import bookmark

# Bookmark 클래스로부터 인스턴스를 만듦
b = bookmark.Bookmark("타이틀", "http://path.to/site")

 

from문을 사용하면 클래스를 좀 더 짧게 기술할 수 있다.

# Bookmark 클래스를 임포트 함
from bookmark import Bookmark

# Bookmark 클래스로부터 인스턴스를 만듦
b = Bookmark("타이틀", "http://path.to/site")

 

 

모듈의 계층 구조 (패키지)

파이썬에는 여러 모듈을 묶어서 관리하는 <패키지>라는 구조가 갖추어져 있다.

프로그램 규모가 좀 커지면 이용할 모듈의 수가 많아진다.

그와 같은 경우는 모듈이 하는 처리의 종류에 따라 모듈을 더 분류해서 패키지로 모아두면 편리하다.

 

Django와 Numpy와 같이, 파이썬에서 만들어진 대규모 프레임워크나 라이브러리에서는

이러한 패키지라는 구조를 사용해서 모듈을 관리하고 있다.

 

 

패키지를 사용하면 여러 모듈을 하나의 패키지 속에 모아둘 수 있다.

위 그림과 같은 구성의 패키지가 있는 경우 'modulea'를 import 하기 위해서 계층 구조를 '도트'로 구분해서 표기

import packagea.modulea

 

좀 더 짧게 작성하고 싶은 경우에는 from문을 사용

from packagea import mudulea

# funca 호출은 modulea.funca()로 할 수 있다.

 

서드파티 모듈을 사용하기

파이썬 배포판에 들어 있지 않은 모듈 (외부 라이브러리나 모듈) 을 찾는 방법

 

python.org 웹사이트에서는 <PyPI> (Python Package Index)라는 이름의 서비스를 제공하고 있다.

https://pypi.python.org/pypi

 

PyPI는 엄청난 수에 이르는 파이썬 모듈을 통합하기 위한 서비스이다.

반응형

'study > python' 카테고리의 다른 글

예외 처리  (0) 2020.12.17
표준 라이브러리사용  (0) 2020.12.16
클래스 상속과 고급 객체 지향 기능  (0) 2020.12.02
객체 지향 프로그래밍과 절차적 프로그래밍  (0) 2020.12.02
PyQt5 : widget and layout  (0) 2020.11.26
'study/python' 카테고리의 다른 글
  • 예외 처리
  • 표준 라이브러리사용
  • 클래스 상속과 고급 객체 지향 기능
  • 객체 지향 프로그래밍과 절차적 프로그래밍
jjikky
jjikky
  • jjikky
    jikky.env
    jjikky
  • 전체
    오늘
    어제
    • 분류 전체보기
      • React
      • Node.js
        • TDD
        • Node.js
        • mern
        • OAuth
        • js_facebook login
      • Coding Test
        • 백준 알고리즘
        • CodeUp
        • 코테 이론
      • Js
        • Javascript
      • study
        • python
        • android
        • Big data analysis
        • Logic Circuit
      • git
      • 개발일지
      • 게임기획
      • Docker
      • IPFS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    NFT IPFS
    파이썬
    그리디 알고리즘
    파이썬 완전탐색
    Ipfs
    범주형 자료
    안드로이드
    verilog할당문
    Python
    파이썬 딕셔너리
    빅데이터
    nft
    NFT Marketplace
    ipfs add
    코딩테스트
    verilog
    ifps 네트워크 지연
    UI
    git 유용한 명령어
    파이썬 그리디
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
jjikky
모듈
상단으로

티스토리툴바