공백
- 스페이스로 들여쓰기 (탭, 공백 혼합 금지)
- 들여쓰기는 스페이스 네 개 사용
- 한 줄의 문자 길이 79자 이하
- 표현식이 길어 다음 줄로 내려쓰는 경우 추가 들여쓰기 사용
- 파일에서 함수와 클래스는 빈 줄 두 개로 구분, 클래스에서 메서드는 빈 줄 하나로 구분
class MyClass:
def __init__(self):
self.data = []
def my_method(self):
# Some code here
pass
def my_function():
# Some code here
pass
- 리스트 인덱스, 함수 호출, 키워드 인수 할당에는 스페이스 사용하지 않음
- 할당( = ), 증분 할당( +=, -= 등), 비교( ==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not)과 같은 이항 연산자는 항상 양쪽에 하나의 공백으로 둘러쌈 ( i = i + 1, c = (a+b) * (a-b) )
- 불필요한 공백 사용하지 않음
명명규칙
- 함수, 변수, 속성은 lowercase_underscore 형식
- 보호 인스턴스 속성은 _leading_underscore 형식
- 비공개 인스턴스 속성은 __double_leading_underscore 형식
- 클래스와 예외는 CapitalizedWord 형식
- 모듈 수준 상수는 ALL_CAPS 형식
- 클래스의 인스턴스 메서드(instance method)에서는 첫 번째 파라미터(해당 객체 참조)의 이름을 self로 지정
- 클래스 메서드(class method)에서는 첫 번째 파라미터(해당 객체 참조)의 이름을 cls로 지정
표현식과 문장
- 긍정 표현의 부정(if not a is b) 대신 인라인 부정(if a is not b) 사용
- 길이를 확인하여 빈 값을 확인하지 않음 (if len(somelist)==0)
if not somelist를 사용하고, 빈 값은 암시적으로 False가 된다고 가정
- 길이를 확인하여 비어있지 않은 값을 확인하지 않음 (if len(somelist)!=0)
if somelist를 사용하고, 비어있지 않은 값은 암시적으로 True가 된다고 가정
- 한 줄로 된 if 문, for와 while 루프, except 복합문을 쓰지 말고 여러 줄로 나눠서 명료하게 작성
임포트 규칙
- 항상 파일의 맨 위에 import 문을 놓음
- 모듈을 import 할 때는 항상 모듈의 절대 이름을 사용하며 현대 모듈의 경로를 기준으로 상대 경로로 된 이름을 사용하지 않음
예를들어 bar 패키지 안의 foo 모듈을 임포트할 때는 import foo 가 아닌 from bar import foo 라고 해야함
- 상대적인 임포트를 해야 한다면 명시적인 구문을 써서 from . import foo 로 작성
- 임포트는 '표준 라이브러리 모듈, 서브파티 모듈, 자신이 만든 모듈' 섹션 순으로 구분해야 함
각각의 하위 섹션에서는 알파벳 순서로 임포트
참고 사이트
- https://peps.python.org/pep-0008/
'Python' 카테고리의 다른 글
파이썬 클래스 속성 (인스턴스 속성, 클래스 속성) (0) | 2023.06.05 |
---|---|
파이썬 메서드 (인스턴스 메서드, 정적 메서드, 클래스 메서드) (0) | 2023.06.05 |
파이썬 여러 버전 설치 및 개발환경 관리 (pipenv) (0) | 2022.10.24 |
파이썬 input & output (입력과 출력) (0) | 2022.10.24 |
파이썬 연산자 (Python Expressions) (0) | 2022.10.24 |