题目:
# 类继承练习:人力系统
# 员工分为两类:全职员工FullTimeEmployee、兼职员工PartTimeEmployee.
#-全职和兼职都有"姓名name"、"工号 id",且都能打印姓名、工号。
#-全职有"月薪monthly_salary",
# 兼职有"日薪 daily_salary"和"每月工作天数work_days"
#-全职和兼职都有"计算月薪calculate_monthly_pay"的方法,但具体计算过程不一样。
问题:
1. 老师以下代码为什么不能省去? 我省去后直接写出的代码出现了什么问题?
def __init__(self, name, ID, monthly_salary):
super().__init__(name, ID)
self.monthly_salary=monthly_salary
2. 在老师代码 parttime_staff 类 D_salary 方法中 self.daily*self.work_days 为什么不用加float来保证是数字乘以数字,直接相乘不会出现字符串相乘的问题吗?
3. 在我的代码 parttime_staff 类 D_salary 方法中 为什么chatGPT告诉我要删除“{} ”的符号,f + {} 不是配套固定搭配使用吗?
我的代码:"""HR Department Programming"""
class staff:
def __init__(self, name, ID):
self.name=name
self.ID=ID
def info_print(self, print_way):
print(f"名字:{self.name} 工号:{self.ID}")
class falltime_staff(staff):
def M_salary(self, mounthly_salary):
print("float(self.ID)*3")
class parttime_staff(staff):
def _init__(self, name, ID, work_days, daily_salary):
super().__init__(name, staff)
self.work_days=work_days
self.daily_salary=daily_salary
def D_salary(self, daily_salary):
print(f"工资: float({self.work_days}) * float({daily_salary}))
没法回答我问题的老师的代码(我手动修改微量细节-比如employee改成staff-版 ———— 我尽量没变,不排除我改瘸可能):.
"""HR Department Programming"""
class staff:
def __init__(self, name, ID):
self.name=name
self.ID=ID
def info_print(self, print_way):
print(f"名字:{self.name} 工号:{self.ID}")
class falltime_staff(staff):
def __init__(self, name, ID, monthly_salary):
super().__init__(name, ID)
self.monthly_salary=monthly_salary
def M_salary(self):
return self.monthly_salary
class parttime_staff(staff):
def _init__(self, name, ID, work_days, daily_salary):
super().__init__(name, staff)
self.work_days=work_days
self.daily_salary=daily_salary
def D_salary(self, daily_salary):
return self.daily*self.work_days
|