Skip to content

google python coding convetion #2

@hyeonseong0917

Description

@hyeonseong0917

참고 주소: https://spoqa.github.io/2012/08/03/about-python-coding-convention.html
https://google.github.io/styleguide/pyguide.html

  1. 코드 레이아웃
  • 들여쓰기는 공백 4칸
  • 최상위 함수와 클래스 정의는 2줄씩 띄어 쓰기
  • 클래스 내의 메소드 정의는 1줄씩 띄어 쓰기
  1. expression과 statement에서의 공백 처리
  • 대괄호, 소괄호 안의 공백은 피한다
  • 쉼표, 쌍점, 쌍반점 앞의 공백은 피한다
  • 키워드 인자와 인자의 기본값은 붙여서
  1. 주석
  • 항상 코드에 따라 갱신
  • 불필요한 주석은 달지 않기
  • 한 줄 주석은 신중히 달기
  • 문서화 문자열의 컨벤션은 https://peps.python.org/pep-0257/ 참고
  1. 이름짓기
  • 변수 명에서의 밑줄 의미
    (1) single_leading_underscore: 내부적으로 사용되는 변수
    (2) single_trailing_underscore
    : 파이썬 기본 키워드와 충돌을 피하기 위해 사용
    (3)__double_leading_underscore: 클래스 속성으로 사용되면 이름 변경
  • 소문자 L, 대문자 O, 대문자 I는 변수명으로 사용하지 않기
  • 모듈명은 짧은 소문자로 구성되며 필요하다면 밑줄로 나누기.
  • 클래스 명은 카멜 케이스 사용
    (1)내부적으로 쓰이면 밑줄을 앞에 붙이기
    (2)예외(Exception)는 실제로 에러인 경우엔 “Error”를 뒤에 붙이기
  • 함수명은 소문자로 구성
  • 인스턴스 메소드의 첫 번째 인자는 언제나 self
  • 클래스 메소드의 첫 번째 인자는 언제나 cls
  • 서브 클래스의 이름충돌을 막기 위해서는 밑줄 2개를 앞에 붙이기
  • 상수(Constant)는 모듈 단위에서만 정의하며 모두 대문자에 필요하다면 밑줄로 나누기
  • 함수, 변수, 속성: lowercase_underscore 형식
  • 클래스, 예외: PascalCase 표기법을 따름
  • 모듈 이름은 짧고 모두 소문자여야함. 가독성을 향상시키는 경우 모듈 이름에 밑줄 사용 가능. 파이썬 패키지는 밑줄 사용을 권장하지 않지만 모두 소문자로 된 짧은 이름을 가져야 함.
  1. 프로그래밍
  • 코드는 될 수 있으면 어떤 구현(PyPy, Jython, IronPython등)에서도 불이익이 없게끔 작성되어야 함
  • None을 비교할때는 is나 is not만 사용
  • 클래스 기반의 예외를 사용
  • 예외를 except:로 잡기보단 명확히 예외를 명시
  • try: 블록의 코드는 필요한 것만 최소한으로
  • string 모듈보다는 string 메소드를 사용합니다. 메소드는 모듈보다 더 빠르고, 유니코드 문자열에 대해 같은 API를 공유
  • 접두사나 접미사를 검사할 때는 startswith()와 endwith()를 사용
  • 객체의 타입을 비교할 때는 isinstance()를 사용
  • 빈 시퀀스(문자열, 리스트(list), 튜플(tuple))는 조건문에서 거짓(false)
  • 불린형(boolean)의 값을 조건문에서 ==를 통해 비교하지 않기

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions