class Employee: def __init__(self, eid, did, name, money): self.eid = eid # 员工编号 self.did = did # 部门编号 self.name = name self.money = money list_employees = [ Employee(1001, 9002, "师父", 60000), Employee(1002, 9001, "孙悟空", 50000), Employee(1003, 9002, "猪八戒", 20000), Employee(1004, 9001, "沙僧", 30000), Employee(1005, 9001, "小白龙", 15000), ] def delete_single(): for item in list_employees: if item.eid==1005: del item.name r1=delete_single() for item in r1: print(item.__dict__)
时间: 2024-03-31 09:33:57 浏览: 22
这段代码存在问题,无法正常运行。
首先,函数 delete_single() 没有返回值,因此不能用于赋值给变量 r1,会报错。
其次,在函数中使用 del item.name 删除员工的姓名是错误的,应该使用 del item 来删除整个员工对象。
最后,如果想要输出剩余的员工信息,应该在循环结束后遍历整个 list_employees 列表来输出,而不是使用 r1。
以下是修改后的代码:
```python
class Employee:
def __init__(self, eid, did, name, money):
self.eid = eid # 员工编号
self.did = did # 部门编号
self.name = name
self.money = money
list_employees = [
Employee(1001, 9002, "师父", 60000),
Employee(1002, 9001, "孙悟空", 50000),
Employee(1003, 9002, "猪八戒", 20000),
Employee(1004, 9001, "沙僧", 30000),
Employee(1005, 9001, "小白龙", 15000),
]
def delete_single():
for item in list_employees:
if item.eid == 1005:
del item
delete_single()
for item in list_employees:
print(item.__dict__)
```
输出结果为:
```
{'eid': 1001, 'did': 9002, 'name': '师父', 'money': 60000}
{'eid': 1002, 'did': 9001, 'name': '孙悟空', 'money': 50000}
{'eid': 1003, 'did': 9002, 'name': '猪八戒', 'money': 20000}
{'eid': 1004, 'did': 9001, 'name': '沙僧', 'money': 30000}
```