首页 > 解决方案 > 如何将父构造函数的功能继承到子构造函数中

问题描述

我编写了一个 NewsApi() 类并创建了它的 Cricket() 子类。下面是代码片段: 类 NewsApi

class NewsApi(object):

    def __init__(self, parameter, country):
        self.parameter = parameter
        self.country = country
        self.top_headlines = 
        newsapi.get_top_headlines(q=self.parameter,country=self.country)
        self.description = []
        self.url = []
        self.image_link = []
        self.title = []
        self.sources = []
        for article in self.top_headlines['articles']:
            self.description.append(article['description'])
            self.url.append(article['url'])
            self.image_link.append(article['urlToImage'])
            self.title.append(article['title'])
            self.sources.append(article['source']['name'])

所以我想创建一个继承自 NewsApi() 类的板球类。我还想在 Cricket() 类中添加 NewsApi 类的构造函数的特定功能。因为我不想在 Cricket() 类构造函数中再次编写相同的代码。

class CricketNews(NewsApi):
    get_every = newsapi.get_everything(q="Cricket",
                                        from_parameter=yesterday_date,  
                                        to=today_date,
                                        language='en',
                                        sort_by='relevancy',
                                        page=2)

标签: python-3.xpython-2.7inheritancepolymorphism

解决方案


您可以使用 Super 方法来调用超类的方法。

class CricketNews(NewsApi):
    def __init__(self, parameter, country):
        super(CricketNews, self).__init__(parameter, country)
        # your init code.

       get_every = newsapi.get_everything(q="Cricket",
                                    from_parameter=yesterday_date,  
                                    to=today_date,
                                    language='en',
                                    sort_by='relevancy',
                                    page=2)

推荐阅读