[파이썬 코딩의 기술] 01~03

토즐라·2022년 6월 16일
1

파이썬 프로그래머들은 명시적인 것을 좋아하고, 복잡한 것보다 단순한 것을 좋아하며, 가독성을 최대한 높이려고 노력한다


1. 사용 중인 파이썬의 버전

파이썬은 나온지 오래 된 언어가 아닙니다. 하지만 파이썬은 짧은 기간동안 비교적 폭발적인 성장을 이룩했으며 따라서 짧은 시간 주기로 많은 버전이 출시되었습니다. 이 때문에 파이썬을 이용할 때에는 특히 버전 때문에 생기는 문제가 많습니다.

따라서 파이썬을 이용해 개발을 할 때에는 현재 사용중인 파이썬의 버전이 무엇인지 알고 있는 것이 굉장히 중요합니다.


2. PEP 8 스타일 가이드를 따르라

Python Enhancement Proposal #8 원문
Python Enhancement Proposal #8 한국어 버전

PEP 8은 파이썬 코드를 어떤 형식으로 작성할지 알려주는 스타일 가이드입니다. 파이썬 언어가 개선되면 PEP도 계속 변하며, 깔끔한 파이썬 코드를 작성하는 방법을 아주 자세히 알려 주고 있습니다.


공백

파이썬에서 공백은 중요한 의미가 있습니다.
파이썬으로 코딩을 할 때에는 공백과 관련한 다음 가이드라인을 따라야 합니다.

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

명명 규약

PEP 8은 파이썬 언어의 여러 부분에 사용하는 이름을 어떻게 붙일지에 대한 공유 스타일을 제공합니다.

  • 함수, 변수, 애트리뷰트는 lowercase_underscore처럼 소문자와 밑줄을 사용한다
  • 보호돼야 하는 인스턴스 애트리뷰트는 일반적인 애트리뷰트 이름 규칙을 따르되, _leading_underscore처럼 밑줄로 시작한다
  • 비공개(private) 인스턴스 애트리뷰트는 일반적인 애트리뷰트 이름 규칙을 따르되, __leading_underscore처럼 밑줄 두 개로 시작한다
  • 클래스(예외도 포함)는 CapitalizedWord처럼 여러 단어를 이어 붙이되, 각 단어의 첫 글자를 대문자로 만든다
  • 모듈 수준의 상수는 ALL_CAPS처럼 모든 글자를 대문자로 하고 단어와 단어 사이를 밑줄로 연결한 형태를 사용한다
  • 클래스에 들어있는 인스턴스 메서드는 호출 대상 객체를 가리키는 첫 번째 인자의 이름으로 반드시 self를 사용해야 한다
  • 클래스 메서드는 클래스를 가리키는 첫 번째 인자의 이름으로 반드시 cls를 사용해야 한다.

식과 문

문제를 해결할 명백한 방법이 하나 있으며, 가급적이며 유일해야 한다
파이썬의 선

  • 긍정적인 식을 부정하지 말고 (if not a is b) 부정을 내부에 넣어라 (if a is not b)
  • 빈 컨테이너(container)나 시퀀스(sequence)를 검사할 때는 길이를 0과 비교(if len(something) == 0) 하지 말라. 빈 컨테이너나 시퀀스 값이 암묵적으로 False로 취급되는 사실을 활용해 'if not 컨테이너'라는 조건문을 써라
  • 마찬가지로 미어 있지 않은 컨테이너나 시퀀스를 검사할 때도 길이가 0보다 큰지 비교하지 말라. 대신 if 컨테이너가 비어 잇지 않은 경우 암묵적으로 True로 평가된다는 사실을 활용하라.
  • 한 줄짜리 if 문이나 한 줄짜리 for while 루프, 한 줄짜리 except 복합문을 사용하지 말라.

임포트

  • import문을 항상 파일 맨 앞에 위치시켜라
  • 모듈을 임포트할 때는 절대적인 이름을 사용하고, 현 모듈의 경로에 상대적인 이름은 사용하지 말라.
  • 임포트를 적을 때는 표준 라이브러리 모듈, 서드 파티 모듈, 여러분이 만든 모듈 순서로 섹션을 나눠라. 각 섹션에서는 알파벳 순서로 모듈을 임포트 하라.

3. bytes와 str의 차이를 알아두라

파이썬에는 문자열 데이터의 시퀀스를 표현하는 두 가지 타입이 있습니다.
바로 bytesstr 인데요, bytes에는 8비트 값의 시퀀스가 들어 있고, str에는 유니코드 코드 포인트의 시퀀스가 들어 있습니다.

profile
Work Hard, Play Hard 🔥🔥🔥

0개의 댓글