激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python繼承和抽象類的實現方法

python繼承和抽象類的實現方法

2020-05-19 09:11腳本之家 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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久影视 | 久久亚洲精品久久国产一区二区 | 中文在线免费观看 | 91午夜免费视频 | 精品一区二区三区免费爱 | 久久在线免费视频 | 毛片免费视频网站 | 久久国产综合精品 | 日韩在线视频免费播放 | 在线成人精品视频 | 91精品国产九九九久久久亚洲 | 欧美毛片免费观看 | 国产精品久久久久久久久久大牛 | 青青国产在线视频 | 国产一区二区三区四区五区精品 | 黄网站在线观 | 7777在线视频免费播放 | 欧美激情999 | 黄色影视免费看 | 成人国产精品一区二区毛片在线 | av电影免费在线 | 亚洲第一成人在线 | 亚洲一级片在线观看 | 成人 日韩 | 亚洲一区二区中文字幕在线观看 | 羞羞的 | 午夜91视频| 亚洲视频在线观看免费视频 | 亚洲精品毛片一区二区三区 | 久久国产精| 国产美女白浆 | 欧美成人se01短视频在线看 | 国产一区视频在线免费观看 | 欧洲亚洲激情 | 香蕉成人在线观看 | 蜜桃网站免费 | 污版视频在线观看 | 片在线观看 | 久久精品欧美电影 | 一级性色| 被啪羞羞视频在线观看 |