亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        python繼承和抽象類的實(shí)現(xiàn)方法

        字號:


            本文實(shí)例講述了python繼承和抽象類的實(shí)現(xiàn)方法。分享給大家供大家參考。
            具體實(shí)現(xiàn)方法如下:
            復(fù)制代碼 代碼如下:#!/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())
            輸出結(jié)果如下:
            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程序設(shè)計(jì)有所幫助。