1 回答
TA贡献1836条经验 获得超4个赞
直接来自 Python 文档的一个示例是defaultdict
集合。它仅覆盖字典的一种方法(__missing__(key)
方法)。
defaultdict 是内置 dict 类的子类。它重写一种方法 (...) 其余功能与 dict 类相同,此处未记录。(...) 所有剩余参数的处理方式与传递给 dict 构造函数的方式相同,包括关键字论据。
该文档以散文形式明确说明了这一点,记录了重写方法,并解释了超类和子类构造函数签名之间的参数差异。
我是否只使用描述中的某个单词,或者这是我需要应用的像 :return: 这样的键?
你所说的“key”实际上被称为文档字符串部分。没有特定的“文档字符串部分”来指示“覆盖”或“扩展”,因为这是隐式的。如果子类定义的方法与其超类的方法具有完全相同的名称,则该方法必然是重写或扩展的。
总之,您会惊讶地发现您的文档实际上是正确的。您最多可以口头添加“覆盖”和“扩展”以及对超类方法的交叉引用,如下所示:
class B(A):
"""Neither method_a nor method_b are inherited.
Both methods are redefined in this class.
"""
def method_a(self):
"""This method overrides :meth:`A.method_a`."""
print("overridden")
def method_b(self):
"""This method extends :meth:`A.method_b`."""
super().method_b()
print("extended")
添加回答
举报