Python TypeError:Employee()不接受任何参数

Python TypeError:Employee()不接受任何参数,python,typeerror,Python,Typeerror,我是Python的新手,我正在为家庭作业创建一个新的employee类,我刚刚完成了代码,但我遇到了一个错误,idk如何修复,employee()不接受任何参数,即使它有参数。由于讲师的命令,我正在处理2个文件,因此以下是两个代码: 我的代码中的函数是缩进的,我不能在这里修复它 class Employee(): def _init_(self, name, id_number, department, job_title): self.name = name self.id_

我是Python的新手,我正在为家庭作业创建一个新的employee类,我刚刚完成了代码,但我遇到了一个错误,idk如何修复,employee()不接受任何参数,即使它有参数。由于讲师的命令,我正在处理2个文件,因此以下是两个代码: 我的代码中的函数是缩进的,我不能在这里修复它

class Employee():

def _init_(self, name, id_number, department, job_title):
    self.name = name
    self.id_number = id_number
    self.department = department
    self.job_title = job_title

def get_job_title():
    return self.job_title

def get_id_number():
    return self.id_number

def get_department():
    return self.department

def get_name():
    return self.name

def set_job_title(self, other_title):
    self.job_title = other_title

def set_id_number(self, other_id):
    self.id_number = other_id

def set_department(self, other_department):
    self.department = other_department

def set_name(self, other_name):
    self.name = other_name
这是另一个文件,就是那个给我错误信息的文件

from cc_classEmployee10_4 import Employee

def print_employee(employee):

print( "{:15} {:5}\t\t\t{:15} {:20}".format(employee.get_name(),\
employee.get_id_number(), employee.get_department(), employee.get_job_title))

def main():
employees = [Employee("Susan Meyers", 47889, "Accounting", "Vice President")\
, Employee("Mark Jones", 39119, "IT", "Programmer"), Employee("Joy Rogers",\
 81774, "Manufacturing", "Engineer")]

print("Structured Computer Systems Inc.".center(65))
print("-----------------------------------------------------------------\
---------")
print("{:15}{:^05}{:>15}{:^20}".format("Name", "ID Number", "Department",\
 "Job Title"))
print("-----------------------------------------------------------------\
---------")

for employee in employees:
    print_employee(employee)

main()

您发布的代码应该考虑两件事

  • Employee
    类后面不需要括号,因为您不打算从该类中创建子类<代码>班级员工:就足够了。我知道这与函数的定义方式不同,但这是Python中定义类的方式

  • init
    特殊方法是通俗地称为dunder方法的一个例子,dunder方法是双下划线方法的简称。这意味着它应该在
    init
    的两侧都有一个双下划线,因此它应该显示为
    \uuuuu init\uuuu
    。看起来每边只有一个下划线


  • 这是个打字错误
    \u init\u
    应该是
    \u init\u
    (每边两个下划线)。由于您是Python新手,请注意,您不需要为每个属性编写单独的getter和setter;只需直接访问它们。修复了init,但现在我得到get_name()接受0个位置参数,但1是givenAs@chepner指出的,您不应该使用setter和getter,只需直接访问属性。所有方法都应该将
    self
    作为第一个参数。