기록하는삶

[파이썬/python] type hint, docstring, 관련 vscode extension 본문

AI/파이썬(Python)

[파이썬/python] type hint, docstring, 관련 vscode extension

mingchin 2022. 1. 18. 17:27
728x90
반응형

파이썬은 JAVA와 같은 언어처럼 변수의 자료형을 미리 지정하는 것이 아니라, 실행되는 시점에 그 자료형이 결정되는 dynamic typing을 지원한다. 이는 코드를 간결하게 하고 개발자 입장에서 사용이 편리하다는 이점을 주지만, 때로 명확히 지정되지 않은 변수의 자료형으로 인해 코드의 잘못된 사용이 일어날 수 있다. 특히 함수에서 여러 개의 변수가 복잡하게 얽혀 사용되는 경우 각 변수의 자료형이 무엇이며, 함수가 어떤 작용을 하는지에 대해 설명해줄 필요가 있는데 이때 도움을 주는 것이 바로 function type hint와 docstring이다. (PEP484 기반으로 업데이트 _ Python 3.5 이상)

 

1) type hint

클래스, 함수 등에서 사용되는 일종의 주석으로, 필수는 아니다. 클래스나 함수에 사용되는 변수들에 데이터 타입에 대한 설명과 그 기능에 대한 설명을 추가할 수 있다.

 

def hi(name):
    print("안녕, 반가워 " + name)
    return

위처럼 작성한다면, 이름을 받아 그에 맞는 인사를 출력하는 함수라는 걸 쉽게 알 수 있다.

다만 보다 명확히 하기 위해 아래와 같이 표현이 가능하다.

def hi(name: str) -> None:
    print("안녕, 반가워 " + name)
    return

name에는 string 타입으로 변수를 넣어줄 수 있고, 그에 대한 반환값은 None이라는걸 직관적으로 알 수 있는 표현이다. 

 

2) docstring

모듈, 함수, 클래스 또는 메소드 등을 정의하는 가장 앞 부분에 string으로 설명을 추가하는 것을 말한다. 함수의 경우에는 각 변수의 의미에 대한 설명과 함께, 함수가 어떤 작동을 하여 무엇을 반환하게 되는지 설명하게 된다.

보통 삼중 따옴표('''설명''' 혹은 """설명""") 사이에 내용을 넣게 되는데, vscode에서 type hint와 함께 이를 효율적으로 작성하게 도와주는 extension이 Python Docstring Generator다.

 

위처럼 type hint을 형식에 맞게 작성한 뒤에 함수의 정의 바로 아래 커서를 두고 ctrl+shfit+2 단축키를 활용하면,

이렇게 형식을 자동으로 잡아준다.

보다 쉽게 설명을 추가할 수 있다. 간단한 함수들의 경우 효용을 느끼지 못할 수 있지만, 변수가 여러 개 사용되고 함수가 복잡한 경우 정말 큰 도움이 된다. 그게 아니더라도 자신의 코드를 누구나 쉽게 읽을 수 있게 작성하는 것이 프로그래머의 기본 자세가 되어야한다.

 

Class의 __init__ 함수에도 동일한 방법으로 적용할 수 있다.

728x90
반응형