python trivia

개요

python 이해도를 높이기 위한 목적으로,

잘 만들어진 library 소스코드(tensorflow)를 보다가 특기할 만한 짧은 내용들을 간략히 소개한다.

 

__future__

compiler 지시자로 동작한다.

하위 호환성이 없는 기능을 미리 사용하기 위함이다.

링크 : PEP 236 – Back to the __future__

링크 : future statement

 

__all__

init.py 내에서 작성하는 variable 이다.

package 내의 공개 가능한 submodule 의 범위를 한정하기 위함이다.

복잡한 프로젝트의 구조와 별개로 사용자 인터페이스를 단순하게 하고 싶을 때 사용할 수도 있다.


# tensorflow\__init__.py

# tensorflow.python 패키지 하위의 submodule 들을 사용자가 접근할 때

# tensorflow.xxx 으로 사용 가능하도록 한다.

from tensorflow.python import *

링크 : importing * from a package

 

pylint

정적분석 도구다.

PEP8 스타일 가이드를 따르도록 도와준다.

pylint: 로 시작하는 주석으로  message 를 제어할 수 있다.

# pylint: disable=wildcard-import
from tensorflow.python import *
# pylint: enable=wildcard-import

링크 : PEP8 style guilde for python code

 

SWIG

python – native code wrapper 다.

같은 목적의 도구로 boost::python 가 있다.

둘 다 써보지 않아서 잘은 모르겠지만

SWIG 는 별도의 인터페이스 file 을 작성하여야 하는 번거로움이 있는 대신

python / tcl / perl / java /c# 등 다양한 타겟으로 인터페이스가 가능하다.

boost 빠인 나로선 boost::python 쪽에 더 마음이 간다.

답글 남기기

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

WordPress.com 로고

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

Google+ photo

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

Twitter 사진

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

Facebook 사진

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

%s에 연결하는 중