bilibili_xiaosi 2023-02-01 08:01 采纳率: 100%
浏览 22
已结题

蒟蒻のpython不知道怎么办时间

背景 :一个练习面对对象的小练习,关于全职员工兼职员工月薪日薪之类的

错误信息:
张三 = a("张三","1001",6000)
^^^^^^^^^^^^^^^^^^^
TypeError: a.init() takes 3 positional arguments but 4 were given

#a = 全职员工/b = 兼职员工/c = 月新/d = 日薪/e = 计算全职月薪/f = 天数/g = 计算兼职员工月工资
class a:
    def __init__(self,name,id):
        self.name = name
        self.id = id
    def print_info(self):
        print(f"员工名字:{self.name},工号:{self.id}")

class b(a):
    def __init__(self, name, id, c):
        super().__init__(name,id)#super()表示父类,用来调用父类
        self.c = c

    def e(self):
        return self.c

class b(a):
    def __init__(self, name, id, d, f):
        super().__init__(name, id)
        self.d = d
        self.f = f

    def g(self):
        return self.d * self.f

张三 = a("张三","1001",6000)
李四 = b("李四","1002",230,15)
张三.print_info()
李四.print_info()

错误部分(报错里写的):

张三 = a("张三","1001",6000)

尝试过的方法:不是super后面括号里面加没加self的问题,好像是其他问题?

  • 写回答

5条回答 默认 最新

  • CodeBytes 2023-02-01 09:16
    关注

    还请参考:
    这段代码中有两个错误:
    在定义类 b 时,重复定义了类 b 覆盖了之前的类 b。
    在创建对象张三时,参数列表长度与类 a 的 init 方法不匹配。
    代码如下:

    class Employee:
        def __init__(self, name, id):
            self.name = name
            self.id = id
        def print_info(self):
            print(f"员工名字:{self.name},工号:{self.id}")
     
    class FullTimeEmployee(Employee):
        def __init__(self, name, id, salary):
            super().__init__(name,id)
            self.salary = salary
     
        def calc_monthly_salary(self):
            return self.salary
     
    class PartTimeEmployee(Employee):
        def __init__(self, name, id, hourly_wage, days):
            super().__init__(name, id)
            self.hourly_wage = hourly_wage
            self.days = days
     
        def calc_monthly_salary(self):
            return self.hourly_wage * self.days
     
    zhangsan = FullTimeEmployee("张三","1001",6000)
    lisi = PartTimeEmployee("李四","1002",230,15)
    zhangsan.print_info()
    lisi.print_info()
    
    

    运行结果

    员工名字:张三,工号:1001
    员工名字:李四,工号:1002
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月9日
  • 已采纳回答 2月1日
  • 创建了问题 2月1日

悬赏问题

  • ¥15 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?