<aside>
💡
🔹 PEP8과 PEP20을 따르기 위한 요약
- PEP8은 코드 스타일을 일관되게 유지하기 위한 구체적인 규칙을 제공합니다.
- PEP20은 Python의 디자인 철학을 제시하여, 가독성, 단순함, 명확성을 우선시하는 개발 문화를 강조합니다.
</aside>
🔹 PEP8 (Python Enhancement Proposal 8)
<aside>
💡
PEP8은 Python 코드 스타일을 일관되게 작성하기 위한 공식적인 가이드라인입니다. 주요 규칙을 아래와 같이 정리할 수 있습니다.
</aside>
1. 들여쓰기 (Indentation)
- 4개의 공백을 사용하여 들여쓰기를 합니다. 탭을 사용하지 않습니다.
2. 라인 길이 (Line Length)
- 한 줄의 길이는 79자 이하로 작성하며, 긴 라인은 여러 줄로 나눕니다.
3. 공백 (Whitespace)
- 연산자 앞뒤에 공백을 넣습니다:
a + b
(x a+b
).
- 함수 인자와 호출 시 괄호 사이에 공백을 넣지 않습니다:
my_function(x, y)
(x my_function( x , y )
).
4. 주석 (Comments)
- 한 줄 주석은
#
뒤에 공백을 두고 작성합니다.
- 블록 주석은 여러 줄로 작성하며, 각 줄 앞에
#
을 붙입니다.
5. 문서화 문자열 (Docstrings)
- 함수, 클래스에는 문서화 문자열(
"""..."""
)을 사용하여 설명을 추가합니다.
6. 함수와 변수명 (Naming Conventions)
- 함수명과 변수명은 소문자와 밑줄을 사용합니다:
my_function
, my_variable
.
- 클래스명은 CamelCase 형식으로 작성합니다:
MyClass
.
- 상수는 모두 대문자와 밑줄로 구분하여 작성합니다:
MY_CONSTANT
.
7. 빈 줄 (Blank Lines)
- 함수와 클래스 정의 사이에는 2개의 빈 줄을 사용합니다.
- 함수 내부 코드 블록 사이에는 1개의 빈 줄을 사용합니다.
8. 임포트 (Imports)
- 임포트는 파일의 맨 위에 위치하며, 다음 순서대로 나열합니다:
- 표준 라이브러리
- 서드파티 라이브러리
- 로컬 애플리케이션/라이브러리
9. 코드 정렬 (Code Formatting)
- 연산자 우선순위에 따라 코드가 읽히는 대로 정렬합니다.
- 여러 변수의 대입 시 공백을 동일하게 맞춰 코드를 깔끔하게 작성합니다.
🔹 PEP20 (The Zen of Python)
<aside>
💡
PEP20은 Python의 설계 철학을 설명하는 간결한 문서입니다. Pythonic한 코드를 작성하는 데 도움이 되는 철학적 가이드라인을 제시합니다.
</aside>
The Zen of Python, by Tim Peters
1. 아름다움은 중요하다 (Beautiful is better than ugly)
- 가독성이 중요한 코드 작성, 추상적이고 복잡한 코드를 피하고 직관적인 코드를 작성합니다.
2. 명확함은 모호함보다 낫다 (Explicit is better than implicit)
- 코드가 명확하게 의도를 전달해야 하며, 복잡한 해석을 피합니다.
3. 단순함은 복잡함보다 낫다 (Simple is better than complex)
- 가능하면 간단하고 직관적인 방법으로 문제를 해결합니다.
4. 복잡함은 허용되지만, 지나치게 복잡한 코드는 피하라 (Complex is better than complicated)
- 복잡한 문제를 해결할 때는 복잡함을 허용하지만, 불필요하게 복잡한 코드는 피해야 합니다.
5. 평범함은 특별함보다 낫다 (Flat is better than nested)
- 깊은 중첩을 피하고 평면적인 구조를 우선시합니다.
6. 읽기 좋은 코드는 작성하기 좋은 코드다 (Readability counts)
- 다른 사람들이 쉽게 읽고 이해할 수 있는 명확하고 깔끔한 코드를 작성합니다.
7. 일관성은 중요하다 (There should be one -- and preferably only one -- obvious way to do it)
- 코드 스타일과 방식에 있어 일관성을 유지하며, 여러 방법 중 가장 명확한 방법을 선택합니다.
8. 실용적인 이유가 없다면, 과거의 결정을 되돌리는 것은 피하라 (Special cases aren't special enough to break the rules)
- 특별한 경우가 아니라면 규칙을 따르는 것이 중요하며, 가능하면 규칙을 지킵니다.
9. 문제의 해결책은 간단하고 명확해야 한다 (Now is better than never)
- 문제를 해결할 수 있는 방법은 즉시 구현하는 것이 중요합니다.