[python] doctest에서 inline 직업 입력을 어떻게 처리할 수 있나요?

doctest는 Python의 표준 라이브러리인 doctest 모듈을 사용하여 인라인 직접 입력을 처리할 수 있습니다. 인라인 직접 입력은 코드 예제의 출력이나 반환 결과를 직접 주석으로 제공하는 방식입니다. 이를 통해 코드 예제의 정확성을 검증하고 문서화할 수 있습니다.

예를 들어, 다음과 같은 함수가 있다고 가정해봅시다.

def add(a, b):
    """
    두 수를 더하는 함수입니다.

    예제:
    >>> add(2, 3)
    5
    >>> add(5, -1)
    4
    """
    return a + b

위의 예제에서 add 함수는 두 개의 인자를 받아서 더한 뒤 반환합니다. doctest 모듈을 사용하여 함수의 동작을 검증하는데, 인라인 직접 입력을 통해 예상되는 결과를 주석으로 작성할 수 있습니다.

위의 add 함수에 대한 doctest에 인라인 직접 입력을 추가하였습니다. 각 예제의 주석에 결과 값을 기록하면 doctest 모듈이 이를 검증하고 일치 여부를 판단할 수 있습니다.

doctest를 실행하기 위해서는 doctest 모듈을 사용하여 코드를 검사하는 testmod() 함수를 호출해야 합니다. 다음은 이를 수행하는 간단한 코드입니다.

import doctest

doctest.testmod()

위의 코드를 실행하면 add 함수에 대한 doctest가 실행되고, 예상된 결과와 실제 결과를 비교하여 일치 여부를 판단합니다. 만약 일치하지 않는 결과가 있는 경우에는 AssertionError가 발생하고, 일치하는 결과인 경우에는 아무런 출력이 없습니다.

이를테면, 위의 예제에서는 모든 doctest가 예상된 결과와 일치하기 때문에 아무런 출력이 없을 것입니다.

이렇게 doctest를 사용하여 함수의 동작을 검증하고 문서화하는 것은 코드의 신뢰성을 개선하고, 나중에 코드를 수정할 때 예상 동작을 확인하는 데 도움이 됩니다.