抑制摘要或协议中的 doctest 类
Suppressing doctest in abstract or Protocol classes
我希望将 doctest 格式的示例用于摘要 (ABC
) 或 Protocol
class 而不会导致 doctest 失败,因为 class 的方法不是已实施。
文档字符串和示例应该反映抽象的多个实现的一般用例class,我想保持 doctest 格式以保持一致性。
任何抑制单个文档字符串或所有摘要或 Protocol
classes 的 doctest 的想法都值得赞赏。我知道我也可以将 is 写成 Sphinx code block,但我认为它在代码中的可读性不高。
示例:
from abc import ABC, abstractmethod
class MyABC(ABC):
"""My docstring.
Here is a recommended use case for this item:
Examples:
>>> a = MyABC()
>>> a.do_something()
'some expected behaviour'
"""
@abstractmethod
def do_something(self):
pass
class MyClass(MyABC):
def do_something(self):
return 'some expected behaviour'
N.B。我知道 this ticket 有点重复,但我认为这个例子不相关,也没有人回答。
您的文档测试必须执行与用户预期相同的操作:定义一个实现 do_something
的子 class 并实例化 that class.
class MyABC(ABC):
"""My docstring.
Here is a recommended use case for this item:
Examples:
>>> class Foo(MyABC):
... def do_something(self):
... return 'some expected behaviour'
...
>>> a = Foo()
>>> a.do_something()
'some expected behaviour'
"""
@abstractmethod
def do_something(self):
pass
我希望将 doctest 格式的示例用于摘要 (ABC
) 或 Protocol
class 而不会导致 doctest 失败,因为 class 的方法不是已实施。
文档字符串和示例应该反映抽象的多个实现的一般用例class,我想保持 doctest 格式以保持一致性。
任何抑制单个文档字符串或所有摘要或 Protocol
classes 的 doctest 的想法都值得赞赏。我知道我也可以将 is 写成 Sphinx code block,但我认为它在代码中的可读性不高。
示例:
from abc import ABC, abstractmethod
class MyABC(ABC):
"""My docstring.
Here is a recommended use case for this item:
Examples:
>>> a = MyABC()
>>> a.do_something()
'some expected behaviour'
"""
@abstractmethod
def do_something(self):
pass
class MyClass(MyABC):
def do_something(self):
return 'some expected behaviour'
N.B。我知道 this ticket 有点重复,但我认为这个例子不相关,也没有人回答。
您的文档测试必须执行与用户预期相同的操作:定义一个实现 do_something
的子 class 并实例化 that class.
class MyABC(ABC):
"""My docstring.
Here is a recommended use case for this item:
Examples:
>>> class Foo(MyABC):
... def do_something(self):
... return 'some expected behaviour'
...
>>> a = Foo()
>>> a.do_something()
'some expected behaviour'
"""
@abstractmethod
def do_something(self):
pass