2014-12-11 23 views
1

我想創建一個Python代碼的員工使用下面的代碼,但它提出了一個錯誤「對象()不需要參數) 我的目標是創建一個程序來通過允許用戶從簡單的數據庫中添加和刪除員工列出他們的員工姓名和編號,薪水和更新他們的薪水並讀取和寫入所有信息到文本文件中,跟蹤員工在組織中的活動。Python的類設計 - 參數錯誤

所以遠遠是我的代碼:

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) 

我不確定我的代碼是否完全錯誤

+0

您必須修復'__init__'方法的縮進;除此之外,你的代碼適用於我 – dazedconfused 2014-12-11 03:19:40

+1

公平的警告:CamelCaps通常被保留給python中的類名,這會讓你的代碼有點奇怪(這也是爲什麼語法突出顯示所有屬性名都會被着色的原因)。你可以做'staff_number'等 – Eevee 2014-12-11 03:45:55

+0

我也不喜歡CamelCap。要清楚,空閒(包含在標籤中但不相關)不會使它們着色。在賦值語句中,'='應該有空格'='以便於閱讀。 – 2014-12-12 00:49:54

回答

1

您的縮進是錯誤的。 __init__方法在你的類下沒有正確縮進,所以被視爲在類之外的方法。這會讓您的課程無法使用任何方法和默認的__init__函數。

將整行的縮進壓入四個空格,您的代碼將工作。

+0

對不起,如何?所以擺脫[「__init__」] – Reena 2014-12-11 04:30:46

+0

號碼縮進代碼。 Python對空白/縮進敏感。你的'__init__'方法被縮進到與你的類定​​義相同的級別,這使得python認爲它不是類的一部分。將其移動到類的縮進級別(如'addEmployee'方法)。 – 2014-12-11 04:36:52

+0

你可以告訴我一個例子,即時通訊嘗試,並沒有得到它 – Reena 2014-12-11 05:04:55