본문 바로가기

문과적 프로그래밍

파이썬 타입 어노테이션(python type annotation) = 파이썬 정적 타입

주의할점 :

  • 파이썬 타입 어노테이션은 IDE, mypy를 사용해 검사할 때만 작동하는 주석이다.
  • 고로, 런타임에서는 아무 일도 안 일어나고 걍 씹는다.
  • mypy를 적용해야 겨우 알아차려 준다.
  • 그리고, 다른 린터처럼, 초큼 복잡하거나 꼬인 코드는 못 알아먹는다.

타입 어노테이션?

정적 타입에 대한 꾸준한 수요가 파이썬 3.6 이후부터 파이썬에도 타입을 쓸 수 있게 했다고 해서 호기심이 생긴 나는 새 토이프로젝트는 정적 타입으로 버그를 줄여야지! 하고 단단한 각오를 했다.

 

검색부터 쉽지 않았다. 파이썬 정적 타입, 파이썬 타입, 파이썬 어노테이션...

꽤 오래된 새 기능의 정식 명칭은 Python Type Annotation이다.

열심히 구글링을 한 결과 파이썬 타입 어노테이션이라고 검색했을 때 제일 잘 나온다.

 

문법은 아래와 같다.

def function(a: str, b: int, c: bool) -> str:
    # blabla~
    
    return d	# d is str

그리고 열심히 적용을 해 보았다.

에디터가 못 먹어?

나는 vscode만 쓴다. 고딩 때부터 이것만 썼고, 이거만큼 크로스플랫폼, 편의성, 설정, 언어 면에서 나은 놈을 못 찾았다.

자랑을 조금만 하자면, 윈도우에서는 WSL 자동 지원, 터미널 내장, vim 플러그인, 마크다운 지원 빵빵함 등이 있다.

 

다만 그만큼 확실한 단점이 하나 있다.

vscode는 설정을 일일히 해줘야 하는 만큼 더럽다.

전문가용 툴이라는 걸 가끔 느낄 정도.

 

한마디로 파이참마려울 때가 있다

 

대부분의 언어를 쓸 수 있고, 설정이 워낙 방대하다 보니 문서를 뒤져도 가끔 이해력이 딸리면 제대로 설정을 못할 수 있다.

그래서 이번에도 타입 설정에 대해 아무것도 인식을 못 하자 조금 쫄았다.

그래도 이번엔 다행히도 문서에 잘 나와 있는 부분이었다.

 

타입 어노테이션 검사는 mypy밖에 잘 안되니까 그거 추가하랍신다.

결론 : 린터에 mypy를 추가하자.

쓸만해?

안 쓸만하다. 아직 파이썬에겐 이른 그 무언가인 듯하다.

  • 단지 에디터에서 힌트 보자고 열심히 뜯어고치기엔 효율이 나쁘다.
  • 가독성은 나쁘지 않지만, 버그 잡을 때 도움이 될까? 하고 의문이 든다.
  • 만약 할 거면 파이썬 3.7 이상에서만 하자.
  • typing 모듈 꼭 붙여야 하는데 그러면 러닝커브가 너무 늘어진다.

결론 : 아직 나에게는 너무 이른 신문물이었다. 바다코끼리 연산자나 갈고 닦아야겠다.

'문과적 프로그래밍' 카테고리의 다른 글

MSVC cl.exe 유니코드  (0) 2020.03.03
페이지랭크  (0) 2020.01.30