【问题标题】:Inheritance of class in Python?Python中类的继承?
【发布时间】:2015-09-04 14:16:56
【问题描述】:

假设我有一个父类A 和一个子类B。现在A 有 10 个方法,而 B 只需要其中的三个方法。如何做到这一点?

【问题讨论】:

  • 不能B忽略其他七种方法吗?或者您能否将共享方法重构为AB 共享的超类,使它们成为兄弟?如果你想覆盖类中继承的方法,只需在该类定义中实现它们即可。
  • Liskov substitution principle 要求 A 的子类型 B 至少具有 A 的接口。如果您不希望这样,那么您可能不希望 B 成为 A 的子类型。
  • 创建一个包含 3 个方法的父类。从父类继承 A 类和 B 类。 A 类将保留其 7 个方法,B 类将不知道它们的任何信息。类似于@jonrsharpe 的建议(我 +1 了),但我提倡这种方法只是“忽略”其他七种方法,因为如果您不是唯一的开发人员,那么有一天有人可能会忘记他们为什么“忽略”它们。

标签: python python-2.7 oop inheritance methods


【解决方案1】:

没什么特别的。

只要继承类A

class B(A):
    super(B, self).__init__():

使用/覆盖您需要的方法并忽略其余方法。

【讨论】:

    猜你喜欢
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    相关资源
    最近更新 更多