python-禁用某些方法的继承
发布时间:2022-04-25 14:49:09 483
相关标签: # node.js
假设我有一个有10个方法的类pass
这里,但假设他们会有一些实现)
class KlassOne:
def method_one(self, x):
pass
def method_two(self, y, z):
pass
...
def method_five(self, a):
pass
...
def method_ten(self, b):
pass
第二类继承自第一类。
class KlassTwo(KlassOne):
def method_eleven(self, w):
pass
但是KlassTwo
不想要所有的十种方法KlassOne
让我们说KlassTwo
只想继承这四种方法,
wanted_methods = [method_one, method_three, method_eight, method_nine]
其余的都不适用于KlassTwo
一个例子可能是,KlassOne
是Person
和KlassTwo
是Robot
和method_five
是EatsFood
所以,我们的Robot
不想继承EatsFood
鉴于method_one
是BodyWeight
,让我们假设这对双方都有意义Person
和Robot
所以Robot
想要继承method_one
.
但如何才能实现这种部分继承呢???
一种方法是使用NotImplemented
例如
class KlassTwo(KlassOne):
def method_five(self, a):
raise NotImplemented
并对每种不需要的方法都进行同样的处理。
或者另一种方法是使用构图,比如,
class KlassTwo:
def __init__(self, x):
self.t = KlassOne.method_one(self, t)
诸如此类,只使用想要的方法。
但是我想使用继承,并且完全禁用某些方法的继承,比如,
class KlassOne:
@not_inheritable
def method_five(self, a):
pass
这样子类就不会method_five
.我如何做到这一点?
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报