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