코드스타일가이드
코드스타일가이드
가는중
2023. 1. 5. 18:17
코드 스타일 가이드
들여쓰기
tab으로 (but 파이썬 코딩 스타일 가이드(PEP 8)에서는 공백 4칸으로 규정)
따옴표
- 작은 따옴표(’)로 통일
- 문자열 안에 작은 따옴표가 표함될 경우 쌍따옴표(”) 사용
text = 'string'
text = "I'm a student!"
Import
- import먼저 선언 후 from impot 선언
- abc 순으로 정렬
- 가독성을 위해 같은 모듈끼리 붙여두고 다른 모듈끼리는 한칸 띄워서 구분
import numpy
import pandas
from django.db.models import Model, QuerySet
from django.http import HttpRequest, HttpResponse
from django.utils.translation import gettext_lazy as _
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
함수명
스네이크 케이스(snake_case) 여러 단어(소문자)로 이뤄진 단어 사이를 언더바로 나누는 방식
def funtion_name():
pass
클래스명
파스칼 케이스(PascalCase)는 쌍봉낙타 표기법이라고도 하며 단어마다 첫 글자를 대문자로 표기하는 표기법
class ClassName():
pass
변수명
- 스네이크 케이스(snake_case) 사용
- 변수명과 값 사이에 =의 앞뒤로 한칸씩 띄우기(공백)
total_num = 10
<aside> 💡 단일 문자 'l' (소문자 엘), 'O' (대문자 오), 'I' (대문자 아이)는 변수에 작성X. (폰트에 따라 이러한 문자는 숫자 1또는 0과 구분하기 어려움)
</aside>
인자
- 인자간 1칸씩 띄우기(공백)
- 인자의 변수명과 변수값 사이에 ‘=’ 의 앞뒤에 공백X
- 인자는 가급적 3개가 넘어가지 않게 (넘어가는 경우는 **kwargs 활용)
def f(a, b, c):
print(a, b, c)
f(1, 2, 3)
#kwargs 활용 예시:
def f(**kwargs):
pass
_dict = {
'a': 1,
'b': 2,
'c': 3,
'd': 4
}
f(**_dict)
연산자
- 다음의 이항 연산자는 양쪽에 항상 1개만 공백(띄우기/스페이스)을 추가.
- 대입 연산자, 괄호대입 연산자, 비교 연산자, 불(Bool) 연산자 (and, or, not)
- 우선순위가 다른 연산자를 다를 경우 우선 순위가 가장 낮은 연잔사의 양쪽에 공백(띄우기/스페이스)을 추가
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)
Dictionary
# key, value가 하나일때:
_dict = {‘a’: a}
# 여러개일때:
_dict = {
‘a’: a,
‘b’: b,
}
# 빈 dict 선언:
_dict = {}
List
# 요소가 5개 미만일때:
_list = [1, 2, 3, 4, 5]
# 요소가 5개 이상일때
_list = [
1, 2, 3, 4, 5,
6, 7, 8, 9, 10
]
# 빈 list 선언:
_list = []
for, if
for, if 선언시 가독성을 위해서 줄바꿈 후 선언
_list = list()
for i in range(1, 11):
if i % 2 == 1:
_list.append(i)
주석
- 주석은 "#"과 띄어쓰기 1개로 시작
- 코드위에 주석 다는 것으로 통일(인라인 X) 및 주석 위에 한 라인 띄우기
- docstrings 경우 ‘’’ ‘’’ 사용 및 아래 줄바꿈 후 코드 작성
- 코드를 변경한 경우 코멘트를 최신 상태를 반영
def f():
''' 함수의 문서화 내용을 입력합니다. '''
'''
함수의 문서화 내용이 길어질경우,
이런식으로 줄바꿈 후 이어서 작성
'''
# 인라인 주석 X
total_num = 0
# 주석위에 한칸띄우기
quantity = 0
한줄 코드 길이
한줄의 코드 길이는 들여쓰기 띄워쓰기 포함 100자를 넘지 않게 작성 (넘어가는 것은 \ 로 줄바꿈후 작성)
new_nick_name_list = [
nick_name \\
for nick_name in nick_name_all_lsit \\
if nick_name=='booooooo'
]
Bool형 비교
Bool형의 값을 True, False와 비교할 때 == 를 사용 X
status = True
# 올바른 작성법:
if status:
# 틀린 작성법(1):
if status == True:
# 틀린 작성법(2):
if status is True:
is, is not
not....is.....가 아닌, is not 연산자 사용
# 올바른 작성법:
if foo is not None:
# 틀린 작성법:
if not foo is None:
annotation
def f(name: str, opts: dict = {}) -> None:
pass
반응형