티스토리 뷰
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' 카테고리의 다른 글
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 |