网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 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程序设计有所帮助。
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/18 23:10:34