- 創建一個包含以下成員的員工類:姓名、年齡、身份證、工資
- setData() - 應該允許通過用戶輸入設定員工資料
- getData()- 應該將員工資料輸出到控制臺
- 創建一個包含 5 名員工的串列。您可以通過以下方式創建物件串列,將物件附加到串列中。
emp_object = []
for i in range(5):
emp_ object.append(ClassName())
我正在嘗試做這個練習,這就是我得到的:
class employee:
def __init__(self, n = None, a = None, i = None, s = None):
self.name = n
self.age = a
self.id = i
self.salary = s
def setData(self):
self.n = input("Enter name: ")
self.a = int(input("Enter age: "))
self.i = int(input("Enter id: "))
self.s = int(input("Enter salary: "))
self.getData()
def getData(self):
print("Name:", self.name, self.age, self.id, self.salary)
e1 = employee()
e1.setData()
e2 = employee()
e2.setData()
e3 = employee()
e3.setData()
e4 = employee()
e4.setData()
e5 = employee()
e5.setData()
emp_object = []
for i in range(5):
emp_object.append(employee())
print(emp_object)
它將員工詳細資訊列印為“無”,我需要幫助來創建串列
預期輸出:
Name id Age Salary
AAA 20 1 2000
BBB 22 2 2500
CCC 20 3 1500
DDD 22 4 3500
EEE 22 5 4000
uj5u.com熱心網友回復:
首先,您想分離一些責任以便更好地閱讀。我們將問題分為兩部分:
- 員工模型
- 輸入/輸出問題
員工
創建一個只包含員工資料的類(我們可以使用資料類,但我假設你是初學者,所以我會保持簡單)
class Employee:
def __init__(self, uid=None, name=None, age=None, salary=None):
self.name = name
self.age = age
self.id = uid
self.salary = salary
輸出和輸入
要在控制臺中顯示員工的資料,我們可以使用__str__函式。當您需要將類轉換為str(print例如)時使用它。然后我們添加另一個負責設定員工資料的方法。我們的Employee班級變成:
class Employee:
def __init__(self, uid=None, name=None, age=None, salary=None):
self.name = name
self.age = age
self.id = uid
self.salary = salary
def __str__(self):
return f"Name: {self.name}, {self.age}, {self.id}, {self.salary}"
def set_data(self):
self.name = input("Enter name: ")
self.age = int(input("Enter age: "))
self.id = int(input("Enter id: "))
self.salary = int(input("Enter salary: "))
我們的課結束了。現在我們將撰寫負責創建 5 名員工的演算法。所以在Employee課堂上:
if __name__ == '__main__':
# Empty list containing our employees
employees = []
# We loop 5 times.
for i in range(5):
# We create an employee
employee = Employee()
# We set the data
employee.set_data()
# We append our brand-new employee into the list
employees.append(employee)
# Now we display our data :
for employee in employees:
# We just need to print the object thanks to __str__ method
print(employee)
告訴我我是否正確回答了您的問題!
uj5u.com熱心網友回復:
將實體變數 self.n(在 setData 方法中)更改為 self.name 以匹配您的類 init 方法的宣告......并對 self.a、self.i... 變數執行相同的操作。
uj5u.com熱心網友回復:
我相信問題在于您沒有將引數設定為 setData 函式中所需的引數。
你需要這樣做:
class employee:
def __init__(self, n = None, a = None, i = None, s = None):
self.name = n
self.age = a
self.id = i
self.salary = s
def setData(self):
self.name = input("Enter name: ")
self.age = int(input("Enter age: "))
self.id = int(input("Enter id: "))
self.salary = int(input("Enter salary: "))
self.getData()
def getData(self):
print("Name:", self.name, self.age, self.id, self.salary)
__init__andsetData是兩個獨立的函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/532081.html
