任务描述
本关任务:编写银行员工类BankEmployee,要求: 1.银行员工类的属性包括姓名name,工号num,工资salary 2.姓名name和工号num设置为私有属性,并将salay设置为默认参数3000
相关知识
为了完成本关任务,你需要掌握:1.类的定义,2.私有属性的设置。
编程要求
根据提示,在右侧编辑器补充代码,实现要求的输出。
测试说明
平台会对你编写的代码进行测试:
测试输入: 张飞 007 预期输出: 张飞领到这个月工资3000
class BankEmployee():
def __init__(self,name,num):
self.__name__ =name
self.__num__=num
self.__salary__=3000
def get_salary(self):
s=self.__name__+"领到这个月工资"+str(self.__salary__)
print(s)
def main():
name = input()
num = input()
bankemployee = BankEmployee(name,num)
bankemployee.get_salary()
if __name__=="__main__":
main()
任务描述
本关任务:编写一个银行柜员类BankTeller,继承BankEmployee类,要求: 1.完善BankEmployee类,对私有属性name和num添加set方法和get方法以实现对私有属性的设置和获取 2.对工号的合法性进行检验,要求工号以字母s开头,如s678是合法工号,678不是合法工号 3.继承BankEmployee类,定义银行柜员类BankTeller类,其name属性和num属性和父类BankEmployee类相同,属性salary默认参数为2000
相关知识
为了完成本关任务,你需要掌握:1.类的继承,2.set/get方式。
编程要求
根据提示,在右侧编辑器补充代码,输出需要的内容。
测试说明
平台会对你编写的代码进行测试:
测试输入: 张飞 007 预期输出: 工号以s开头 张飞领到这个月工资2000 工号以s开头 张飞 None
测试输入: 赵云 s009 预期输出: 赵云领到这个月工资2000 赵云 s009
class BankEmployee():
def __init__(self,name="",num="",salary=2000):
self.__name = name
self.__num = num
self.salary = salary
def get_salary(self): #定义领工资方法get_salary()
print("%s领到这个月工资%d"%(self.__name,self.salary))
def get_name(self):
return self.__name
def set_name(self,name):
self.__name=name
def get_num(self):
return self.__num
def set_num(self,num):
self.__num=num
class BankTeller(BankEmployee):
def set_num(self,num):
if num[0]!='s':
print("工号以s开头")
self.__num=""
else:
self.__num=num
def get_num(self):
if self.__num==""or self.__num[0]!='s':
print("工号以s开头")
return None
return self.__num
def main():
bankteller = BankTeller()
name = input()
num = input()
bankteller.set_name(name)
bankteller.set_num(num)
bankteller.get_salary()
print(bankteller.get_name(),bankteller.get_num())
if __name__=="__main__":
main()
相关知识
为了完成本关任务,你需要掌握:1.继承,2.插槽。
编程要求
根据提示,在右侧编辑器补充代码,实现需要的输出。
测试说明
平台会对你编写的代码进行测试:
测试输入: 刘备 s001 8000 5000 预期输出: 刘备领到这个月提成5000
class BankEmployee():
# 请在此处添加代码 设置插槽 #
# *************begin************#
# **************end*************#
def __init__(self,name="",num="",salary=3000):
self.__name = name
self.__num = num
self.salary = salary
def get_salary(self): #定义领工资方法get_salary()
print("%s领到这个月工资%d"%(self.__name,self.salary))
def set_name(self,name):
self.__name = name
def get_name(self):
return self.__name
def set_num(self,num):
if num.startswith("s"):
self.__num = num
else:
print("工号以s开头")
def get_num(self):
return self.__num
#commission 提成
class BankManager(BankEmployee):
# 请在此处添加代码 完成BankTeller类的定义#
# ************* begin ************#
def __init__(self,name,num,salary,commission):
BankEmployee.__init__(self,name,num,salary)
self.__commission=commission
def get_commission(self):
print("%s领到这个月提成%d"%(self.get_name(),self.__commission))
# ************** end *************#
def main():
name = input()
num = input()
salary = int(input())
commission = int(input())
bankmanager = BankManager(name,num,salary,commission)
bankmanager.get_commission()
if __name__=="__main__":
main()