专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Perl/Python

菜鸟一个课本实例的有关问题

发布时间:2011-06-29 20:10:21 文章来源:www.iduyao.cn 采编人员:星星草
初学者一个课本实例的问题
请教坛子里的高手们,本人最近在学习Python,做实例做到如下一个,但是编译总是说抽象方法不能调用,不知道问题处在哪里,请大家帮我看看,谢谢!


'''
EmployeeModule.py
'''
class Employee:
  """ """
   
  def __init__(self,first,last):
  """
  """

  if self.__class__==Employee:
  raise NotImplementedError,"Cannot create object of class Employee"
   
   
  self.firstName=first
  self.lastName=last
   
  def __str__(self):
  """ """
   
  return "s% %s"(self.firstName,self.lastName)
   
  def _checkPositive(self,value):
  """ """
   
  if value<0:
  raise ValueError,"Attribute value (%s) must be positive" % value
  else:
  return value
   
  def earnings(self):
  """ """
   
  raise NotImplementedError,"Cannot call abstract method"

#===============================================

'''
BossModule.py
'''

from EmployeeModule import *

class Boss(Employee):
  def __init__(self,first,last,salary):
  Employee.__init__(self,first,last)
  self.weekSalary=self._checkPositive(float(salary))
   
  def eranings(self):
  return self.weekSalary
   
  def __str__(self):
  return "%17s,%s"%("Boss",Employee.__str__(self))

#======================================

'''
CommissionWorkerModule.py
'''
from EmployeeModule import *

class CommissionWorker(Employee):
  def __init__(self,first,last,salary,commission,quantity):
  Employee.__init__(self,first,last)
  self.weekSalary=self._checkPositive(float(salary))
  self.commission=self._checkPositive(float(commission))
  self.quantity=self._checkPositive(quantity)
   
  def eranings(self):
  return self.salary+self.commission*self.quantity
   
  def __str__(self):
  return "%17s,%s"%("Commission Worker",Employee.__str__(self))

#==================================================
'''
HourlyWorkerModule.py
'''

from EmployeeModule import *
class HourlyWorker(Employee):
  def __init__(self,first,last,wage,hours):
  Employee.__init__(self, first, last)
  self.wage=self._checkPositive(float(wage))
  self.hours=self._checkPositive(float(hours))
   
  def earnings(self):
  if self.hours<=40:
  return self.wage*self.hours
  else:
  return 40*self.wage+(self.hours-40)*self.wage*1.5
   
  def __str__(self):
  return "%17s,%s"%("Hourly Worker",Employee.__str__(self))

#==================================================
'''
Created on 2011-12-15

@author: peter
'''
from EmployeeModule import *

class PieceWorker(Employee):
  def __init__(self,first,last,wage,quantity):
  Employee.__init__(self, first, last)
  self.wagePerPiece=self._checkPositive(float(wage))
  self.quantity=self._checkPositive(quantity)
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: