문제

클래스 메소드에서 문서가있는 파이썬 모듈과 모듈 Docstring의 실제 예제가 있습니다. 구별은 방법-의사가 완전히 반복 가능한 테스트로 신중하게 제작되었으며, 실제 예제는 Linux 쉘의 역사의 사본입니다. Python 통역사를 호출했습니다.

예를 들어

"""
Real-world example:

# python2.5
Python 2.5 (release25-maint, Jul 20 2008, 20:47:25)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from packagename import module
>>> module.show_real_world_usage()
'Hello world!'
"""

class SomeClass(object):
    def someMethod(self):
        """
        >>> 1 == 1
        True
        """

DocTest를 실행하고 싶습니다 SomeClass.someMethod, 그러나 모듈의 문서에는 그렇지 않습니다.

DocTest의 +SKIP Directive는 한 줄 당 만 작동하므로 실제 예제에 10s의 선을 추가하는 것을 의미합니다. 못생긴!

Doctest가 전체 블록을 건너 뛰는 방법이 있습니까? 조금 비슷합니다 <!-- ... --> HTML에서?

도움이 되었습니까?

해결책 2

내 해결책은 3자를 다듬는 것이 었습니다 >>> 그리고 ... 내가 DocTest가 그들을 건너 뛰기를 원하는 지도자는 2자가 만들어졌습니다.

그래서

"""
>>> from packagename import module
>>> module.show_real_world_usage()
'Hello world!'
"""

되었습니다

"""
>> from packagename import module
>> module.show_real_world_usage()
'Hello world!'
"""

epydoc은 doctests만큼이나 멋지게 표시되지 않지만 나는 이것과 함께 살 수 있습니다. DocTest의 건너 뛰기 푸르 터 노티 지침은 환영받을 것입니다.

다른 팁

함수로 예제를 감고 함수 호출을 건너 뜁니다.

"""
>>> def example():
...    from packagename import module
...    module.show_real_world_usage()
...
>>> example() # doctest: +SKIP
'Hello world!'
"""

어떤 식 으로든 실제 문서가 아닌 경우 값을 변수에 할당 할 수 있습니다. 예를 들어,

example_usage = """
Real-world example:

# python2.5
...
"""

그 "테스트"를 평가하지 않게합니다.

사용하는 것이 좋습니다 __example_usage__ (또는 이중 underscores로 둘러싸인 다른 것)는 "마법"변수이며 스크립트의 컨텍스트 내에서 사용되는 변수가 아닌 것이 분명합니다.

소규모 해결 방법 Robm의 대답 a >>>로 예제를 시작하여 디스플레이/서식을 보존합니다.

""" 
>>>
>> from packagename import module 
>> module.show_real_world_usage() 
'Hello world!' 
"""
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top