各位用户为了找寻关于python继承和抽象类的实现方法的资料费劲了很多周折。这里教程网为您整理了关于python继承和抽象类的实现方法的相关资料,仅供查阅,以下为您介绍关于python继承和抽象类的实现方法的详细内容

本文实例讲述了python继承和抽象类的实现方法。分享给大家供大家参考。

具体实现方法如下:

 

代码如下: #!/usr/local/bin/python # Fig 9.9: fig09_09.py # Creating a class hierarchy with an abstract base class.   class Employee:    """Abstract base class Employee"""      def __init__(self, first, last):       """Employee constructor, takes first name and last name.       NOTE: Cannot create object of class Employee."""         if self.__class__ == Employee:          raise NotImplementedError,             "Cannot create object of class Employee"         self.firstName = first       self.lastName = last      def __str__(self):       """String representation of Employee"""         return "%s %s" % (self.firstName, self.lastName)      def _checkPositive(self, value):       """Utility method to ensure a value is positive"""         if value < 0:          raise ValueError,             "Attribute value (%s) must be positive" % value       else:          return value      def earnings(self):       """Abstract method; derived classes must override"""         raise NotImplementedError, "Cannot call abstract method"   class Boss(Employee):    """Boss class, inherits from Employee"""      def __init__(self, first, last, salary):       """Boss constructor, takes first and last names and salary"""         Employee.__init__(self, first, last)       self.weeklySalary = self._checkPositive(float(salary))      def earnings(self):       """Compute the Boss's pay"""         return self.weeklySalary      def __str__(self):       """String representation of Boss"""         return "%17s: %s" % ("Boss", Employee.__str__(self))   class CommissionWorker(Employee):    """CommissionWorker class, inherits from Employee"""      def __init__(self, first, last, salary, commission, quantity):       """CommissionWorker constructor, takes first and last names,       salary, commission and quantity"""         Employee.__init__(self, first, last)       self.salary = self._checkPositive(float(salary))       self.commission = self._checkPositive(float(commission))       self.quantity = self._checkPositive(quantity)      def earnings(self):       """Compute the CommissionWorker's pay"""         return self.salary + self.commission * self.quantity      def __str__(self):       """String representation of CommissionWorker"""         return "%17s: %s" % ("Commission Worker",          Employee.__str__(self))   class PieceWorker(Employee):    """PieceWorker class, inherits from Employee"""      def __init__(self, first, last, wage, quantity):       """PieceWorker constructor, takes first and last names, wage       per piece and quantity"""         Employee.__init__(self, first, last)       self.wagePerPiece = self._checkPositive(float(wage))       self.quantity = self._checkPositive(quantity)      def earnings(self):       """Compute PieceWorker's pay"""         return self.quantity * self.wagePerPiece      def __str__(self):       """String representation of PieceWorker"""         return "%17s: %s" % ("Piece Worker",          Employee.__str__(self))   class HourlyWorker(Employee):    """HourlyWorker class, inherits from Employee"""      def __init__(self, first, last, wage, hours):       """HourlyWorker constructor, takes first and last names,       wage per hour and hours worked"""         Employee.__init__(self, first, last)       self.wage = self._checkPositive(float(wage))       self.hours = self._checkPositive(float(hours))      def earnings(self):       """Compute HourlyWorker's pay"""         if self.hours <= 40:          return self.wage * self.hours       else:          return 40 * self.wage + (self.hours - 40) *            self.wage * 1.5      def __str__(self):       """String representation of HourlyWorker"""         return "%17s: %s" % ("Hourly Worker",          Employee.__str__(self))   # main program   # create list of Employees employees = [ Boss("John", "Smith", 800.00),               CommissionWorker("Sue", "Jones", 200.0, 3.0, 150),               PieceWorker("Bob", "Lewis", 2.5, 200),               HourlyWorker("Karen", "Price", 13.75, 40) ]   # print Employee and compute earnings for employee in employees:    print "%s earned $%.2f" % (employee, employee.earnings())

 

输出结果如下:

Boss: John Smith earned $800.00

Commission Worker: Sue Jones earned $650.00

Piece Worker: Bob Lewis earned $500.00

Hourly Worker: Karen Price earned $550.00

希望本文所述对大家的Python程序设计有所帮助。