Search

Python Style Guide

Base
https://yosseulsin-job.github.io/Google-Python-Style-Guide-kor/
https://peps.python.org/pep-0008/
분류
코드/네이밍
적용 범위
언어별
PEP 8과 Google Python Style Guide를 기반으로 하며, 모든 규칙은 Ruff로 자동 강제됩니다.

도구 체인

구분
도구
패키지 / 워크스페이스
uv
Lint · Format · Import 정렬
Ruff (단일 도구)
테스트
pytest
로컬 게이트
pre-commit
자주 쓰는 명령:
uv run ruff check . # 린트 (--fix 로 자동 수정) uv run ruff format . # 포맷 uv run pytest -q # 테스트
Bash
복사
모든 lint·format·import 규칙은 pyproject.toml[tool.ruff]에 정의하며, 이 파일이 단일 진실 소스입니다.
black·flake8·isort를 개별 도입하지 않고 Ruff 하나로 통합합니다.

네이밍 가이드라인

타입
네이밍
Example
패키지
snake_case
lower_with_under
모듈
snake_case
lower_with_under
클래스
PascalCase
CapWords
예외(Exception)
PascalCase
CapWords
함수
snake_case
lower_with_under()
상수
UPPER_CASE
CAPS_WITH_UNDER
변수
snake_case
lower_with_under
메서드
snake_case
lower_with_under()
함수/메서드 매개변수
snake_case
lower_with_under
문자열은 쌍따옴표를 사용합니다. (Ruff formatter 기본값과 일치)

피해야 하는 이름

아래 특별한 경우를 제외한 단일 글자 이름은 피합니다.
counters·iterators (예: i, j, k, v)
try/except에서 예외 식별자 e

문자열 포매팅

문자열 포매팅에는 f-string을 사용합니다.
% 연산자, str.format, f-string 중 f-string이 가장 빠릅니다.
표현식을 직접 평가해 문자열에 삽입하므로 별도 파싱·변환이 없습니다.
name = "Project0" print(f"Project : {name}") # 출력: "Project : Project0"
Python
복사

타입 어노테이션

확정적으로 사용되는 매개변수·반환값 타입은 반드시 명시합니다.
반환값이 없으면 -> None을 명시합니다.

Import 정렬

Ruff(isort 규칙)가 표준 라이브러리 → 서드파티 → 로컬 순으로 그룹을 나누고, 그룹 사이에 빈 줄 1개를 둡니다.
정렬은 uv run ruff check --fix 또는 pre-commit 훅에서 자동 수행됩니다.