원래 type hinting을 주제로 글을 쓰려다가, 타입 추론에 대해 글을 써내려가다 보니 이거 하나만으로도 글 하나가 대충 완성될 것 같았다. 그래서 이번에는 그냥 타입 추론 이야기를 해보려고 한다. 타입 추론 Python은 타입 검사가 동적이기 때문에, 모든 타입이 컴파일 타임이 아니라 런타임에 결정된다. 컴파일 타임에는 세 변수 모두 타입을 모르...
PEP 570 -- Python Positional-Only Parameters에서는 Positional-Only Arguments, Keyword-Only Arguments 개념이 제언되었다. Accepted 상태지만 Python 3.0부터 3.7까지 Keyword-Only Arguments만이 반영되어 있다. 이건 파이썬에서 함수의 인자 형태를 구분하는...
Go의 defer A Tour of Go를 통해 처음 Go언어를 배우면서 재밌었던 부분은 defer였다. defer [statement] 형태로 사용하며, 여기에 정의해 둔 statement는 함수의 call stack이 사라지는 시점에(쉽게 말하면, 함수가 종료되기 직전에) 평가된다. 아래 코드는 텍스트 파일을 열고, 이 파일을 닫는 함수 호출을 defe...
abc는 Python 2, 3 모두에서 사용할 수 있는 파이썬 표준 라이브러리 중 하나다. abc는 Abstract Base Class의 약자인데, 말 그대로 객체지향에서의 abstract 개념을 파이썬에서 잘 사용할 수 있도록 도와준다. PEP 3119에서 2007년 4월에 최초 제안되었다. Java의 추상 메소드 이야기 OOP를 내세우는 언어들은 보통...
내가 일하고 있는 업계(Marketing Tech)가 URL을 많이 다루는 곳이라서 그런지, URL에 query string 추가는 어떻게 해야 되는지, 어떻게 path 부분만 예쁘게 떼낼 수 있을지같은 것들을 고민하게 된다. urllib을 보면서, 아래같이 Pythonic하게 URL을 다룰 수 있으면 좋을 것 같다고 생각했다. 직접 만들자니 아무래도 U...
이전 글 : 파이썬으로 URL 가지고 놀기 - urllib.parse 편 urllib.parse와 함께한 시간은 너무나도 힘들었다. 다른 건 다 봐줄 만 한데, query string을 다루는 건 너무나도 비직관적이었다. 그렇게 찾아낸 게 yarl(Yet another URL library)였다. yarl 설치 Quickstart URL 클래스가 모든...
이전 글 : 파이썬으로 URL 가지고 놀기 - yarl 편 yarl은 immutable에 적극적이며 익숙한 개발자에게 urllib의 좋은 대안이 될 수 있는 라이브러리다. 그러나 나는 yarl이 그렇게나 까는 mutable 객체를 제공하는 라이브러리를 원했다. 아래와 같은 이유에서다. Python은 immutable에 민감한 언어가 아니다. 객체의 매 ...
Go 언어에는 gofmt라는 도구가 있다. Go를 설치하면 기본적으로 제공되는 콘솔용 코드 포매팅 프로그램인데, gofmt -w main.go같은 커맨드를 통해 Go 코드를 포매팅하는 식이다. indent 맞춰 주고, 구조체를 align 시켜주는 등 코드의 비주얼적인 개선 작업들을 한다. Visual Studio Code에서 Go extension을 설치하...
6월 4일에는 Python 3.8.0b1이, 7월 4일에는 두 번째 베타 버전인 Python 3.8.0b2가 릴리즈됐다. 이는 Python 3.8이 feature complete하게 되었다는 것을 의미한다. 정식 릴리즈가 10월에 이뤄질텐데, 그 전에 이 베타 버전을 통해 Python 3.8의 새로운 기능들을 살펴보자. 이해하기 쉽고 headline이라고 ...