从子类到基类获取属性

时间:2019-06-24 06:48:54

标签: python-2.7

这里的代码非常简单。我想从开发人员访问p_lang并将其传递给Manager并打印出该开发人员的编程语言。但是问题是有些雇员没有p_lang属性,有些却没有。我该如何解决类型转换以及AttributeError。

当我尝试打印emp.p_lang时,我的主要问题是在Manager类的print_emp方法上

class Employee(object):
def __init__(self, first, last, pay):
    self.first=first
    self.last=last
    self.pay=pay

class Developer(Employee):
    def __init__(self, first, last, pay, p_lang):
        Employee.__init__(self, first, last, pay)
        self.p_lang=p_lang
class Manager(Employee):
    def __init__(self, first, last, pay, employees=None):
        Employee.__init__(self, first, last, pay)
        if employees is None:
            self.employees = []
        else:
        self.employees = employees
    def print_emp(self):
        for emp in self.employees:
            print "Employees Supervised : %s -- 
                   Language: %s" % (emp.first, emp.p_lang)


emp1=Employee('Soham', 'Majumdar', 18000)
emp2=Employee('Rohan', 'Gogoi', 23000)

dev1=Developer('Sauronil', 'Das', 50000, 'Python')
dev2=Developer('Nitish', 'Kashyap', 60000, 'Java')

mgr1 = Manager('Linus' , 'Sebastian' , 90000, [emp1, emp2, dev1, dev2])

mgr1.print_emp()

0 个答案:

没有答案