-
00. 클린코드 - Docstring과 어노테이션python 2022. 5. 5. 02:12728x90
--주저리--
더보기회사에서 진행중인 프로젝트들을 보면 시간이 지날 수록 추가 요청 사항들, 에러 수정 등 코드를 고칠일이 상당히 많은데
이럴 때마다 코드들이 점점 지저분해져 간다는 느낌을 받았다
깔끔한 유지보수를 위해 클린코드가 무엇인지 기초 공사부터 다시 배우려 한다
책 앞부분에는
'기술 부채는 나쁜 결정이나 적당한 타협의 결과로 생긴 소프트웨어적 결함을 말한다'
'개발팀이 제 시간에 어떤 것을 제공할 수 없어서 코드를 수정하고 리팩토링하기 위해 멈춘다는 것은 기술 부채에 대한 비용을 지불한다는 뜻이다'
라고 적혀있다
나는 여태 "급하니까 일단 실행만 되게 해 놓자" 라는 식의 코드 작성만 있었던 것같다
이게 나중에 어떻게 이자가 생겨서 부채로 돌아올지... 더 큰 부채가 생기기전에 '파이썬 클린코드'를 구매했다
주말(2일)에 챕터 1개
평일(5일)에 챕터 1개를 정독하고 실습해서
6월초까지 완독할 예정이다
Docstring과 어노테이션
-훌륭한 코드는 문서화도 잘되어 있다
-주석은 피해야한다
타입 어노테이션은 다음과 같이 사용한다.
num: int = 1변수명 바로 옆에 : int 와 같이 사용하여 num 변수가 int형 임을 명시한다.
def add(a: int, b: int) -> int: return a+b어노테이션은 힌트는 준다고 생각하면 된다
타입 뿐만아니라 문자열, 콜백 등 사용가능
어노테이션에는 __annotations_.라는 속성도 있다.
{어노테이션의 이름: 타입, return:결과} 의 형태로 출력이 되서 문서 생성이나 유효성검증, 타입체크를 할 수 있도록 한다
Docstring은 객체 안에 정의되어 있으면 __doc__속성을 통해 접근이 가능하다
def my_fn(): """임의의 계산 수행""" return None my_fn.__doc__ '임의의 계산 수행'어노테이션이랑 docstring은 서로 보완적인 개념이다
어노테이션으로 dic을 파라미터로 받아서 dic형태로 반환한다고 작성을 해도
파라메터로 다른 형태가 들어올 수도 있기 때문에 docstring으로 구체적인 설명을 해줘야한다
입출력을 더 잘 이해하기 위해서 뿐만 아니라 단위 테스트에서도 유용한 정보로 사용된다.
Mypy는 정적 타입 검사 도구이다.
프로젝트의 모든 파일을 분석하여 타입 불일치 검사를 해준다
mypy가 완벽한 도구는 아니어서 가끔 잘못된 탐지를 할 때가 있다
문장 끝에 주석을 추가한다
type_to_ignore = "something" # type : ignore
pip install mypy
mypy {파일명}
>> 타입 검사 결과 제공
pylint는 코드의 구조를 검사하는 도구
pip install pylint
.pylintrc파일을 통해 규칙을 활성화 비활성화할 수 있고 한줄의 최대 글자수 같은 값을 설정할 수 있다고 한다
728x90'python' 카테고리의 다른 글
[Sotfteer/소프티어]연탄의 크기 python (0) 2025.03.18 01. iter (0) 2022.07.11