[파이썬] Docstrings 작성 스타일과 규칙

Docstrings은 파이썬 코드에서 함수, 클래스, 모듈 등의 설명을 작성하는데 사용되는 문서화 문자열입니다. 제대로 작성된 Docstrings은 코드의 가독성을 높이고 유지보수와 협업을 용이하게 합니다. 이 글에서는 Docstrings 작성 스타일과 규칙에 대해 알아보겠습니다.

1. Docstrings 작성 위치

def greet(name):
    """
    인사말을 출력하는 함수

    :param name: 인사 대상자의 이름
    :type name: str
    :return: 인사말 문자열
    :rtype: str
    """
    return "Hello, " + name

2. Docstrings 작성 스타일

2.1 PEP 257 스타일

PEP 257은 파이썬 Docstrings 작성에 관한 공식적인 스타일 가이드입니다. PEP 257에 따르면 다음과 같은 스타일을 사용합니다:

def square(n):
    """
    입력된 숫자의 제곱 값을 반환하는 함수

    :param n: 입력 숫자
    :type n: int
    :return: 입력 숫자의 제곱 값
    :rtype: int
    """
    return n * n

2.2 Google 스타일

Google 스타일은 PEP 257에 비해 좀 더 구체적인 문서화 스타일을 제안합니다. 다음은 Google 스타일의 예제입니다:

def factorial(n):
    """
    주어진 숫자의 팩토리얼 값을 계산합니다.

    Args:
        n (int): 계산할 숫자

    Returns:
        int: 주어진 숫자의 팩토리얼 값
    """
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

3. Docstrings 작성 요소

Docstrings에는 다양한 요소를 포함할 수 있습니다. 가장 일반적으로 사용되는 요소들은 다음과 같습니다:

def divide(x, y):
    """
    두 숫자를 나눈 결과를 반환합니다.

    :param x: 나뉠 숫자
    :type x: float
    :param y: 나눌 숫자
    :type y: float
    :return: 나눈 결과
    :rtype: float
    :raises ValueError: 0으로 나눌 경우
    :examples:
        divide(10, 2) -> 5.0
        divide(5, 0) -> ValueError
    :see_also: `multiply`, `subtract`
    """
    if y == 0:
        raise ValueError("Cannot divide by zero")
    return x / y

4. Docstrings 자동 생성 도구

Docstrings 작성은 번거로운 작업일 수 있습니다. 자동으로 Docstrings을 생성해주는 도구를 사용하면 이 작업을 효율적으로 수행할 수 있습니다. 대표적인 도구로는 Sphinx, Pydoc, Doxygen 등이 있습니다.

결론

Docstrings은 파이썬 코드의 가독성과 유지보수성을 높이기 위해 중요한 역할을 합니다. 올바른 스타일과 규칙을 따르면 다른 개발자와의 협업에서도 유용하게 사용할 수 있습니다. Docstrings은 코드 작성시 함께 고려해야 하는 중요한 요소 중 하나이므로, 적절한 문서화를 위해 꼼꼼하게 작성해야 합니다.