gpt4 book ai didi

python - 如何执行部分继承

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:49 26 4
gpt4 key购买 nike

例如我有两个类:

class Parent(object):

def hello(self):
print 'Hello world'

def goodbye(self):
print 'Goodbye world'


class Child(Parent):
pass

Child 类只能从 Parent 继承 hello() 方法,并且不应提及 goodbye()。可能吗?

ps 是的,我读了this

重要提示:而且我只能修改子类(在父类中所有可能的都应该保持原样)

最佳答案

解决方案取决于您为什么要这样做。如果您想避免将来错误地使用该类(class),我会这样做:

class Parent(object):
def hello(self):
print 'Hello world'
def goodbye(self):
print 'Goodbye world'

class Child(Parent):
def goodbye(self):
raise NotImplementedError

这是明确的,您可以在异常消息中包含解释。

如果您不想使用父类中的大量方法,更好的风格是使用组合而不是继承:

class Parent(object):
def hello(self):
print 'Hello world'
def goodbye(self):
print 'Goodbye world'

class Child:
def __init__(self):
self.buddy = Parent()
def hello(self):
return self.buddy.hello()

关于python - 如何执行部分继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11204053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com