Python类和继承。如何使实例具有主类的参数

时间:2019-07-01 02:29:39

标签: python-3.x class inheritance

尝试学习Python /编程,我对类/继承有疑问。我创建了一个“ Media”类,并且想要创建一个名为“ Movie”的实例以从Media继承。对于Media,我已经将发布者的硬编码始终设置为等于“ Universal Studios”,因此我想让我的电影打印出Publisher,然后让其打印出“ Universal Studios”,但我对实现这一目标感到困惑。我在下面有我的代码,并尝试了各种语法,但无法弄清楚。

class Media:
    def __init__(self, publisher = 'Universal Studios', market = 'USA'):
        self.publisher = publisher
        self.market = market

    def get_media_info(self):
        print(self.publisher, self.market)
        return None

class Movie(Media):
    def __init__(self, movie_data):
        super().__init__(movie_data)
        self.movie_data = movie_data

    def test(self):
        print(publisher)

test = Movie(movie_data = {'title': 'one', 'rating': 'two'})
test.test()

1 个答案:

答案 0 :(得分:1)

super.__init__()中不传递任何参数。如以上注释中所述,movie_data似乎不与基类中的任何参数保持一致,因此您无需将这些arg发送给基类,否则会发生意外结果(例如您的self.publisher返回了dict的{​​{1}}:)

然后执行movie_data,因为print(self.publisher)是类实例的属性,所以需要使用publisher对其进行限定。

self

enter image description here