python中构造方法可以被继承吗_构造函数是在python中继承的吗

我正在研究麻省理工学院6.00开放式课程的一个习题集,我有以下代码。。。在class Trigger(object):

def evaluate(self, story):

"""

Returns True if an alert should be generated

for the given news item, or False otherwise.

"""

raise NotImplementedError

# Whole Word Triggers

# Problems 2-5

# WordTrigger

class WordTrigger(Trigger):

def __init__(self, word):

self.word = word

def is_word_in(self, text):

word = self.word.lower()

text = text.lower()

#Remove punc and split text

for ch in string.punctuation:

text = text.replace(ch, ' ')

splitText = text.split(' ')

#Check if word is in text

return word in splitText

# TitleTrigger

class TitleTrigger(WordTrigger):

## def __init__(self, word):

## self.word = word

def evaluate(self, story):

return self.is_word_in(story.get_title())

我最初没有注释掉TitleTrigger()中的构造函数,但是当我运行所提供的测试脚本时,当测试实用程序试图调用我的TitleTrigger()类时,它抛出了一个错误。我不知道出了什么问题,所以我在解决方案代码达到顶峰,他们已经注释掉了构造函数,所以我就是这样做的,而且运行得很好。这给我留下了三个问题。。。在如果子类没有在子类中定义,那么子类将自动继承其超类的构造函数,这是正确的吗?当我把这件事说出来的时候,似乎就是这样。在

我在TitleTrigger()中使用的构造函数与它的超类WordTrigger()中的构造函数完全相同,那么我是在子类中定义它还是允许子类继承它又有什么关系呢?在

我还有另外两个WordTrigger()的子类,它们与TitleTrigger()相同,只是一个查找故事主题中的一个单词,另一个查找摘要。这两个通过了他们自己的构造函数的测试,这看起来真的很奇怪。在

如果需要的话,我可以包含测试代码,但是如果问题只是代码如何测试我的类的一个怪癖,我不需要知道这个怪癖是什么。我真正想知道的是,对于将来的情况,如果子类(子类)不定义自己的超类构造函数,子类是否会自动继承它们的超类构造函数,就像它们如何从超级类继承其他方法一样。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值