[파이썬 배우기] 2. 코드공유하기 – 함수모듈

Posted on Updated on

2장의 진행


  • 재사용성을 높이기 위해서 함수를 만듦
  • 함수를 특정 파일이름.py 파일 안에 넣고 저장하며, 그 이름과 같은 이름의 폴더를 생성
  • setup.py를 양식에 맞춰 작성
  • 시키는대로 해서 배포 패키지 만들기
  • 그 패키지를 import 해서 사용해 보기
    • 이상하게도 실패함. 기존의 코드는 잘 돌아갔음. 그래서  그 코드를 소스파일에 집접 타이핑 하지 않고 모듈을 import 했는데 실패함
    • 실패의 원인 분석 : 네임스페이스
      • import 한 이름과 동일한 단어를 써 줘야 함
      • from 원하는모듈이름 import 원하는함수이름
        • 위와 같이 하면 네임스페이스는 필요 없지만, 이미 그 함수 이름을 사용하고 있다면 덮어쓰게 되버리니 주의할 것
  • PyPI 웹사이트 등록하기
  • 함수를 조금 바꿔보자
    • 내장 함수를 알아보자
  • 코드를 추적, 오류 찾고, 새 코드를 갱신하자

모듈


코드를 공유하기 쉽게 구조화함
*.py 의 파일은 모듈이라고 볼 수 있음

모듈 사용하기

import 원하는모듈이름
원하는모듈이름.함수명()

배포 유틸리티


전세계에 공유하기 위한 프로세스. 이 과정을 밟아야 공유하는 모듈을 만들 수 있음

배포 준비


1. 모듈을 위한 폴더 생성

2. setup.py 를1번 폴더에서 생성

from distutils.core import setup

setup(
        name = 'uartis',
        version = '1.0.0',
        py_modules = ['uartis'],
        author = 'UARTIS.park',
        author_email = 'freetime4y@gmail.com',
        url = 'https://uartis.wordpress.com',
        description = 'test code',
    )

3. 배포 패키지 만들기

python3 setup.py sdist

4. 배포 패키지를 파이썬 환경에 설치

sudo python3 setup.py install

준비 완료

PyPI(Python Package Index)


써드파티 파이썬 모듈 제공하는 중앙 저장소

사이트에 등록하기

사이트에 등록하기 위해서 http://pypi.python.org/ 접속, 입력 후 등록
이메일로 확인 및 등록

코드를 PyPI에 등록하기

명령행 도구에 위에서 등록한 아이디 패스워드를 입력하는 절차를 수행

$ python3 setup.py register
$ python3 setup.py 내모듈이름 upload

끝!

만약 자신의 모듈을 업그레이드 했다면?

버전 값을 바꿔서 다시 업로드하자

import


모듈을 사용하기 위해서 import 해야 함

파일 명만 사용하고, py는 쓰지 않음

요구사항 변경 시 빠르게 함수를 고치자


새로 함수를 짜기 보다, 인자를 줘서 행위를 제어할 수 있음

range() 내장함수

0~ 정해진 수 바로 전까지 일련의 숫자를 나열함

for i in range(4):
    print(i)       //결과 :0, 1, 2, 3

Tip


편집기 추천

WingIDE : 파이썬 개발자 전용 IDE
이클립스
TextMate
IDEL

주석 달기

여러 줄 주석

'''여기서부터 여기까지
주석입니다 '''
# 이것도 주석입니다.

내 모듈을 내 컴퓨터에 굳이 설치해야 하는것인가 ? 그냥 내 폴더에 모아두고 하면 안되나?
파이썬은 import sys; sys.path명령으로 검색하는 폴더만 검색하므로 주의해야한다
-> 좀 더 알아봐야겠습니다.


print('\t', end='') // 주의 :따옴표 두 개다

선택적 인자 사용하기


기존의 코드를 사용하고 있던 사람들은 새로운 API 버전이 나와서 설치했는데, 기존에 사용하던 시그너처와 다르다면, 오류를 토해 낼 것이다. 이 경우를 방지하기 위해서, 기존의 함수 코드에 인자가 늘어난 코드라면, 선택적 인자를 사용해서 오류를 방지할 수 있다. 흔히 말하는 함수의 오버로딩을 말하는 것 같다.

def print_code(firstArgment) 
# 원래 이런 코드였다고 치자. 다음 버전에서
def print_code(firstArgment, secondArgument) 
# 이렇게 하면, 이 함수를 사용할 때는 반드시 2 개의 인자를 사용해야 한다.
# 기존의 호환이 안될 수 있으니
def print_code(firstArgment, secondArgument = 0)
# 이런 식으로 기본 값을 설정해 주면 된다. 
# 만약 두 번째 인자가 넘어오지 않으면, 지정해 준 기본 값이 들어가게 된다.

* 본 글은 ‘헤드퍼스트 파이썬’ 한빛미디어의 책을 학술 목적으로 인용하였습니다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중