*PEP (Python Enhancement Proposal) : Python을 개선하기 위한 제안서
PEP 중 8번 Style Guide for Python Code는 파이썬의 코드 스타일 가이드를 담고 있습니다.
코드 작성 후 Black과 같은 코드 포맷터로 자동 포맷팅 할 수 있지만,
간결하고 가독성좋으며 오류가 적은 코드 작성을 위해 어떤 고민이 있었는지 알아보는 것이 의미 있다는 생각에 일부 정리해봤습니다.
기타 : 많은 프로젝트에는 그 프로젝트만의 코딩 스타일 가이드라인이 있고, PEP 8과 충돌이 발생할 경우, 해당 프로젝트의 코딩 스타일을 우선적으로 적용하는 것이 좋습니다.
이번 포스팅은 이항 연산자 위주로 정리해봤습니다.
# 잘못된 예
# 연산자가 대응되는 피연산자로부터 멀리 떨어져 있다.
income = (gross_wages +
taxable_interest +
(dividends - qualified_dividends) -
ira_deduction -
student_loan_interest)
# 옳은 예:
# 연산자와 피연산자를 구별하기 쉽다.
income = (gross_wages
+ taxable_interest
+ (dividends - qualified_dividends)
- ira_deduction
- student_loan_interest)
# 잘못된 예:
i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
# 옳은 예:
i = i + 1
submitted += 1
x = x*2 - 1 # 우선 순위가 낮은 - 연산자주위로 공백을 생성
hypot2 = x*x + y*y
c = (a+b) * (a-b)
# 잘못된 예
ham[1: 9], ham[1 :9], ham[1:9 :3]
ham[lower : upper]
ham[lower + offset:upper + offset]
# 옳은 예:
ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
ham[lower:upper]
ham[lower+offset : upper+offset]
다음에는 오류 방지를 위한 startwith(), isinstance()와 같은 프로그래밍 권장사항에 대해 정리해보겠습니다.
혹시 궁금하신 사항은 댓글 남겨주세요.
감사합니다.
1. [PEP 8 한국어 번역], https://zerosheepmoo.github.io/pep8-in-korean/docguide/
2. [PEP 8 공식문서], https://www.python.org/dev/peps/pep-0008/
[Python] 이미지 파일에서 메타데이터(Metadata) 추출하기 (0) | 2022.08.17 |
---|---|
[Python] list의 append, extend 메서드, 리스트에 다른 리스트의 원소를 그대로 붙이고 싶다면 extend 사용 (0) | 2021.08.10 |
[Python] Python 멀티프로세싱 예제 with concurrent.futures (0) | 2021.07.31 |
[Python] Python Exception 리스트 (0) | 2021.05.01 |
[Airflow] ModuleNotFoundError: No module named 'sqlalchemy.ext.declarative.clsregistry' (0) | 2021.04.20 |