【问题标题】:Class Design for Python - Parameter ErrorPython 的类设计 - 参数错误
【发布时间】:2014-12-11 03:08:45
【问题描述】:

我正在尝试使用以下代码为员工创建 python 代码,但出现错误“Object () 不带参数) 我的目标是创建一个程序来跟踪组织中的员工,允许用户从一个简单的数据库中添加和删除员工,列出他们的员工姓名和编号、薪水并更新他们的薪水,并将所有信息读取和写入到一个文本文件。

到目前为止,这是我的代码:

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)

我不确定我的代码是否完全错误。

【问题讨论】:

  • 您必须修复__init__ 方法的缩进;除此之外,您的代码对我有用
  • 公平警告:CamelCaps 通常为 python 中的类名保留,这使您的代码读起来有点奇怪(这就是为什么语法突出显示会为所有属性名着色的原因)。你可以做staff_number等。
  • 我也不喜欢 CamelCap。需要明确的是,空闲(包含在标签中但不相关)不会为它们着色。在赋值语句中,= 应该有空格 ` = ` 以便于阅读。
  • 添加了 Etan 在回答中指定的缩进。

标签: python shell python-3.x python-idle


【解决方案1】:

你的缩进是错误的。 __init__ 方法在您的类下没有正确缩进,因此被视为类外的方法。这使您的课程没有任何方法和默认的__init__ 函数。

将整个行的缩进推入四个空格,您的代码就可以工作了。

【讨论】:

  • 抱歉怎么样?所以摆脱 ["init"]
  • 没有。缩进代码。 Python 对空格/缩进敏感。您的 __init__ 方法缩进到与您的类定义相同的级别,这使 python 认为它不是类的一部分。将其移动到类的缩进级别(如您的 addEmployee 方法)。
  • 你能给我举个例子,因为我正在尝试但没有得到它
  • 你的addEmployee函数一个例子。它被正确缩进成为类的一部分。只需修复 __init__ 函数的缩进即可匹配。
  • 您甚至可以在您发布到其他问题的代码中使用缩进。
猜你喜欢
  • 2015-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
相关资源
最近更新 更多