Python的类设计-参数错误
我试图使用以下代码为员工创建python代码,但出现了一个错误“Object()不带参数) 我的目标是创建一个程序来跟踪组织中的员工,允许用户从一个简单的数据库中添加和删除员工,列出他们的员工姓名和编号、工资,更新他们的工资,并将所有信息读写到文本文件中 到目前为止,这是我的代码:Python的类设计-参数错误,python,shell,python-3.x,python-idle,Python,Shell,Python 3.x,Python Idle,我试图使用以下代码为员工创建python代码,但出现了一个错误“Object()不带参数) 我的目标是创建一个程序来跟踪组织中的员工,允许用户从一个简单的数据库中添加和删除员工,列出他们的员工姓名和编号、工资,更新他们的工资,并将所有信息读写到文本文件中 到目前为止,这是我的代码: class Employee: """ Employee has name, one staff number, number of years worked, Salary and Holiday"""
class Employee:
""" Employee has name, one staff number, number of years worked, Salary and Holiday"""
def __init__(self, name, StaffNumber, YearsWorked, Salary, HolidayEntitlement):
self._name=name
self._StaffNumber=StaffNumber
self._YearsWorked=[]
self._Salary=[]
self._HolidayEntitlement=[]
def addEmployee(self) :
text = int(input("Enter Employee's Name"))
for i in range (text):
self._name(input("Enter Employee's Name"))
e = Employee("Jean Green", "13026", "7", "£12,890", "42 days")
print ("Employee: ", e._name)
print ("Employee: ", e._StaffNumber)
print ("Employee: ", e._YearsWorked)
print ("Employee: ", e._Salary)
print ("Employee: ", e._HolidayEntitlement)
我不确定我的代码是否完全错误。您的缩进是错误的。
\uuuuu init\uuuu
方法没有正确缩进到您的类下,因此被视为类外的一个方法。这使得您的类没有方法和默认的\uuuu init\uuu
函数
将整个行块的缩进按四个空格,代码就会工作。您必须修复
\uuuu init\uuuu
方法的缩进;除此之外,您的代码适用于mefair警告:在python中,CamelCaps通常是为类名保留的,这使您的代码读起来有点奇怪(这就是语法高亮显示为所有属性名称着色的原因)。你可以只做staff_number
等。我也不喜欢CamelCap。只是为了清楚,空闲(包含在标记中,但不相关)不给它们上色。在赋值语句中,=
应该有空格“=`以便于阅读。添加了Etan在应答中指定的缩进。很抱歉,像这样吗?所以去掉[“init”]否。缩进代码。Python对空格/缩进敏感。\uuuuu init\uuuu
方法缩进到与类定义相同的级别,这使Python认为它不是类的一部分。将其移动到类的缩进级别(如addEmployee
方法)。你能在我尝试时给我看一个例子吗?你的addEmployee
函数就是一个例子。它正确缩进,成为类的一部分。只需修复\uuuu init\uuu
函数的缩进以匹配。你甚至在你发布到其他问题的代码中都有缩进。