Home [Better Way #02] PEP 8 스타일 가이드를 따르라
Post
Cancel

[Better Way #02] PEP 8 스타일 가이드를 따르라

본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”“Chapter 01. Pythonic Thinking”을 읽고 정리한 내용입니다.


https://peps.python.org/pep-0008/


공백(Whitespace)

  • 탭 대신 스페이스를 사용해 들여쓰기하라.
  • 문법적으로 중요한 들여쓰기에는 4칸 스페이스를 사용하라.
  • 라인 길이는 79개 문자 이하여야 한다.
  • 긴 식을 다음 줄에 이어서 쓰는 경우, 일반적인 들여쓰기보다 4 스페이스를 더 들여쓴다.
  • 파일 안에서 각 함수와 클래스 사이에는 빈 줄을 두 줄 넣는다.
  • 클래스 안에서 메서드와 메서드 사이에는 빈 줄을 한 줄 넣는다.
  • 딕셔너리에서 키와 콜론 사이에는 공백 X, 키와 값을 같이 넣는 경우에는 콜론 다음에 스페이스를 하나 넣는다.
  • 변수 대입에서 = 전후에는 스페이스를 하나씩만 넣는다.
  • 타입 표기를 덧붙이는 경우, 변수 이름과 콜론 사이에 공백 X, 콜론과 타입 정보 사이에는 스페이스를 하나 넣는다.


명명 규약

  • 함수, 변수, 애트리뷰트: snake_case (lowercase_underscore)
  • 보호되어야 하는 인스턴스 애트리뷰트: 밑줄로 시작 (_leading_underscore)
  • 비공개(private) 인스턴스 애트리뷰트: 밑줄 두 개로 시작 (__leading_underscore)
  • 클래스(예외도 포함): PascalCase (CapitalizedWord)
  • 모듈 수준의 상수: 모든 글자를 대문자로하고, 단어 사이를 밑줄로 연결 (ALL_CAPS)
  • 클래스 내 인스턴스 메서드: 호출 대상 객체를 가리키는 첫 번째 인자로 self 사용
  • 클래스 메서드: 클래스를 가리키는 첫 번째 인자로 cls 사용


식과 문

  • 긍정적인 식을 부정하지 말고(if not a is b) 부정을 내부에 넣는다. (if a is not b)
  • 빈 컨테이너나 시퀀스를 검사할 때는 길이를 0과 비교하지 말고 False로 취급된다는 사실을 이용한다. (if not 컨테이너)
  • 비어있지 않은 컨테이너나 시퀀스르 검사할 때도 길이를 0과 비교하지 말고 True로 취급된다는 사실을 이용한다.
  • if문, for문, while 루프, except 복합문을 한 줄로 작성하지 말고 여러 줄에 나눠 배치한다.
  • 식을 한 줄 안에 다 쓸 수 없다면 식을 괄호로 둘러싸고 줄바꿈과 들여쓰기를 추가해서 읽기 쉽게 한다.
  • 여러 줄에 걸쳐 식을 쓸 때는 줄이 계속된다는 표시를 하는 \ 보다는 괄호를 사용한다.


임포트(Import)

  • import 문은 항상 파일 맨 앞에 위치한다.
  • 모듈 임포트 시 절대 경로를 사용한다. 반드시 상대 경로로 임포트해야 하는 경우, from . import foo와 같이 명시한다.
  • 표준 라이브러리 모듈 - 서드 파티 모듈 - 커스텀 모듈 순서로 섹션을 나눈다. 각 섹션에서는 알파벳 순서로 임포트한다.
This post is licensed under CC BY 4.0 by the author.

[Better Way #01] 사용 중인 파이썬의 버전을 알아두라

[Better Way #03] bytes와 str의 차이를 알아두라