Python类继承有问题

时间:2012-12-17 17:29:54

标签: python class inheritance

我正在学习一个Programming类,并且我需要创建一个继承自已创建的类的类。这是老师教我做的代码,但它似乎没有起作用:

class Intern(Employer):
    def __init__(self, last_name, first_name, address, phone, email, end_date):
        Employer(last_name, first_name, address, phone, email)
        self.end_date=end_date
    def intern_info(self):
        self.print_info()
        print self.end_date

3 个答案:

答案 0 :(得分:6)

该行

Employer(last_name, first_name, address, phone, email)

创建一个Employer对象,当__init__()的执行结束时,该对象立即被垃圾收集。它不会以任何方式影响Intern对象。你的意思可能就像

Employer.__init__(self, last_name, first_name, address, phone, email)

或者

super(Intern, self).__init__(last_name, first_name, address, phone, email)

答案 1 :(得分:2)

self的参数中缺少Employer。您需要使用super或明确将self传递给父级__init__。您还需要显式调用父__init__方法。

class Intern(Employer):
    def __init__(self, last_name, first_name, address, phone, email, end_date):
        Employer.__init__(self, last_name, first_name, address, phone, email)
        self.end_date=end_date
    def intern_info(self):
        self.print_info()
        print self.end_date

答案 2 :(得分:0)

您缺少缩进​​,这是Python中代码块的机制。

尝试:

class Intern(Employer):
    def __init__(self, last_name, first_name, address, phone, email, end_date):
        Employer(last_name, first_name, address, phone, email)
        self.end_date=end_date
    def intern_info(self):
        self.print_info()
        print self.end_date
相关问题