티스토리 뷰

PEP 8 -- Style Guide for Python Code


PEP는 Python Enhancement Proposal의 약자로 우리말로 번역하면 파이썬을 개선하기 위한 제안서이다.

좀 더 자세한 내용은 PEP 0, 1을 읽어보면 알 수 있다.

(https://www.python.org/dev/peps/)


PEP 8은 파이썬 코드를 작성하는 스타일에 대한 가이드를 제시한 내용이다.

(Coding Convention)


물론, 어디까지나 해당 내용은 가이드이며, 파이썬 코드를 작성하게 되는 주변 환경에 맞춰서 일관성있게 해주는 것이 더 중요하다.

PEP 8 내용 일부를 요약하면 다음과 같다.


Code lay-out

- 들여쓰기는 공백 4칸

- 들여쓰기는 탭보다 스페이스를 사용

- 한 줄은 최대 79자까지

- 최상위(top-level) 함수와 클래스 정의는 2줄씩 띄어쓰기

- 클래스 내의 메소드 정의는 1줄씩 띄어쓰기


Whitespace in Expressions and Statements

- 불필요한 공백 제거

[](parentheses), ()(brackets or braces) 안

,(comma), ;(semicolon), :(colon) 앞

- a keyword argument 또는 a default parameter value의 equal(=)는 앞, 뒤에 공백 제거


Naming Conventions

- 변수명은 소문자와 _(underline)을 사용하며 _(underline)은 위치와 수에 따라 의미가 다름

single_trailing_underscore_: 파이썬 기본 키워드와 충돌을 회피하기 위해 사용

_single_leading_underscore: 내부적으로 사용되는 변수(protected)

__double_leading_underscore: "magic" objects 또는 attributes 용도로 사용(private)

- 듈(Module)은 짧은 소문자와 _(underline) 사용

모듈은 파이썬 파일(.py)과 대응하기 때문에 파일 시스템과 충돌나지 않도록 주의

C/C++ 확장 모듈은 _(underline)로 시작합니다.

- 클래스명은 CamelCase로 작성

변수명과 동일하게 내부적으로 사용될 경우 _(underline)을 사용

클래스의 인스턴스 메소드에서 첫 번째 파라미터(해당 객체를 참조)의 이름은 self로 지정

클래스 메소드에서는 첫 번째 파라미터(해당 클래스를 참조)의 이름은 cls로 지정

- 함수명은 소문자와 _(underline) 사용

- 상수(Constant)명은 모듈 단위에서만 정의하며 모두 대문자와 _(underline) 사용


Programming Recommendations

- None 비교 시 is나 is not만 사용

- if not A is보다 if A is not B를 사용

- 길이를 확인하여 empty sequences(strings, lists, tuples)을 확인하는 방법은 지양

(ex. if len(seq):)

empty sequences(strings, lists, tuples)의 경우 False, 그렇지 않을 경우는 True이기 때문에 True/False로 확인하는 방법을 지향

(ex. if seq:)

- boolean type의 값은 ==를 통해 비교 지양

- 한 줄로 된 if문, for, while 반복문, except 복합문은 지양

raise ValueError, 'message'보다 raise ValueError('message')를 사용

- 예외 처리 시 명확하게 명시

except: (x)

except ImportError: (o)

- try: 블록의 코드는 필요한 것만 최소한으로 작성

- string module보다 string methods를 사용

- 접두사나 접미사를 검사할 때는 startswith()와 endswith()를 사용

- 객체의 타입을 비교할 때는 isinstance()를 사용

'Programming > Python' 카테고리의 다른 글

(PEP 8) Style Guide for Python Code  (0) 2016.08.15
Python Modules  (0) 2016.01.16
Scapy 사용하기  (0) 2015.04.11
Scapy 설치하기  (0) 2015.04.11
PySide - Combine (Show, About, Close)  (0) 2015.04.07
PySide - Show Licence (File Open)  (0) 2015.04.07
PySide - About Box  (0) 2015.04.07
PySide - Close Button  (0) 2015.04.05
PySide - QMessageBox  (0) 2015.04.05
OS X에서 PySide 설치하기  (0) 2015.04.05
쉘 스크립트(shell script)의 시작 #!(shebang)  (0) 2014.11.14
댓글
댓글쓰기 폼
«   2019/02   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28    
링크
공지사항
Total
69,294
Today
0
Yesterday
18