파이썬 표준 코딩 컨벤션 몇가지

KimCookieYa·2023년 4월 23일
0

코딩

목록 보기
1/10

Python을 다루며 혼자 코딩을 하는데도 매번 코딩 스타일이 달라진다. 변수를 소문자로만 적을지, 두번째 단어의 첫글자만 대문자로 할지, 아니면 단어를 '_'로 구분할지, 변수와 함수의 스타일을 똑같이 할지, 등등. 일관되지 않은 코딩 스타일에 스스로도 불편함을 느끼면서 개운치 않다. 스타일을 하나로 확립할 필요성을 느꼈고 그에 관한 여러 자료를 찾아보니 이미 나와 같은 고민을 해온 개발자들이 잘 정리해놓은 자료와 공식 문서를 볼 수 있었다.

이제부터 불필요한 것은 제외하고, PEP 8(Python Enhancement Proposals)에서 표준으로 제시하는 정말 기본적인 코딩 컨벤션 몇가지만 적어보고자 한다.

이는 Python의 강제 사항이 아니며 지키지 않는다고 코드가 작동하지 않는 것도 아니다.

그저 권유되는 표준 제안일 뿐이며, 코딩 스타일은 단지 개인의 선호도를 따른다. 이미 잘 정립된 스타일이 있다면 일관성있게 유지하는 것이 중요하며, 만약 이 글을 읽는 개발자가 나와 같은 고민을 했었더라면 아래 사항을 한 번 따라보는 것을 추천한다. PEP 8에서 제시하는 표준 스타일 가이드이니 문제될 일은 없을 것이다.

Name

변수명과 함수명은 소문자로 구성하며, 단어가 2개 이상일 때는 '_(undefscore)'로 구분한다.

def func_name():
	pass

tot_no = []

반대로 클래스명은 camelCase로 작성한다.

class heapTree():
	def __init__(self):
		total_count = 0

들여쓰기는 space 4칸

들여쓰기는 탭(tap)보다 공백(space) 4칸을 권장한다.

불필요한 공백을 줄이자.

다음과 같은 곳의 불필요한 공백은 피한다.

  • 대괄호([])와 소괄호(()) 안
  • 쉼표(,), 쌍점(:)과 쌍반점(;) 앞

그리고 키워드 인자(keyword argument)와 인자의 기본값(default parameter value)의 =는 붙여쓴다.

자잘한 recommendations

  • None을 비교할 때는 is 또는 is not만 사용한다.
  • try: 블록의 코드는 필요한 것만 최소한으로 작성한다.
  • 객체의 타입을 비교할 때는 isinstance()를 사용한다.
  • 빈 시퀀스(문자열, 리스트(list), 튜플(tuple))는 조건문에서 거짓(false)이다.
  • 불린형(boolean)의 값을 조건문에서 ==를 통해 비교하지 마라.
  • import는 독립적으로, 한 줄에 하나씩 하자.
Yes: import os
     import sys
No:  import sys, os

나의 스타일

표준 스타일 가이드를 읽고 정리하면서 나에게 맞는 스타일을 찾았다. name 짓는 법은 표준을 따르는 편이 좋을 것 같다. 그러나 나는 들여쓰기할 때는, 탭이 편해서 띄어쓰기 4칸으로 바꾸진 않을 것이다. 불필요한 공백은 확실히 줄여야겠다. import는 독립적으로. 스타일은 말 그대로 스타일일 뿐이라 개인이 선호하는대로 하면 될 것 같다. 어차피 회사에 들어가면 그 회사에서 제시하는 스타일로 바꿔야한다고도 하고. 편한대로 하자.

참고

위 글은 문성원님의 파이썬 코딩 컨벤션 글과 PEP 8 공식 문서를 참고하였습니다.

profile
[크래프톤 정글 2기], 티스토리로 이주했습니다:)

0개의 댓글