You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实例化employee类报缺少必需位置参数emp1错误如何解决

报错原因

你遇到的missing 1 required positional argument报错核心是构造方法写错了:

  • Python类的初始化构造方法固定命名为__init__(双下划线开头+init+双下划线结尾),你写了个和类同名的employee普通方法,根本不会在实例化的时候被调用。Python会给没有自定义构造方法的类默认生成一个只接收self参数的无参构造,你实例化的时候传了name和salary两个参数,和默认构造的参数不匹配,就抛出了缺参数的错误。
  • 代码里还有几个隐藏的运行错误:
    • 类名大小写不统一:定义类用的是小写employee,displayCount方法里调用类属性写的是大写Employee,运行到这行会报名称错误。
    • 方法名拼写错误:展示员工信息的方法名displyEmployee漏了字母a,正确拼写是displayEmployee,调用时会找不到方法。
    • print语句写法错误:你在displayCount里写的print ("\nTotal Employee %d", Employee.empCount)不会自动替换占位符,会直接把%d当成普通字符串打印。
    • 代码里所有句尾的分号都是冗余的,Python不要求语句结尾加分号,写了不报错但不符合编码规范。
修复后可运行代码
class Employee:
    empCount = 0
    
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        Employee.empCount += 1
 
    def displayCount(self):
        print(f"\nTotal Employee {Employee.empCount}")

    def displayEmployee(self):
        print('Name:', self.name, 'Salary:', self.salary)
    
emp1 = Employee('ABS', 2000)
# 功能测试调用
emp1.displayEmployee()
emp1.displayCount()
修复点说明
  • 把原代码里和类同名的方法重命名为__init__,作为类的正式构造方法,实例化传参时可以正常接收参数,从根源解决缺位置参数的报错。
  • 统一类名为大写开头的Employee,修正方法名的拼写错误。
  • 用f-string替换原来错误的占位符写法,保证计数打印正常。
  • 去掉所有冗余的句尾分号。

内容的提问来源于stack exchange,提问作者Abdelrahman Hassan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 22:24:18