如何在python中检索字典中的类对象?

  • 本文关键字:对象 字典 检索 python python
  • 更新时间 :
  • 英文 :


我已经成功地在字典中添加了一个员工类对象。但是我无法从同一字典中取回值?下面是代码和输出。

源代码:

# decalre a dict
employee_collection = {}
# Class object to store employee's details
class employee:
# Constructor
def __init__(self,name,age):
self.name = name
self.age  = age
# Display the object values
def print_property(self):
print(f"name is {self.name} and age is {str(self.age)}")
# loop to add multiple employee details
for x in range(1, 6):
obj= employee("xxx", 28+x)
employee_collection.update({x : obj})
# extract the employee detail from  and print the vaue to user
for x in employee_collection:
# print(x.name)
print(x)
print(employee_collection)

输出:

1
2
3
4
5
{1: <__main__.employee object at 0x0327F610>, 2: <__main__.employee object at 0x03550C70>, 3: <__main__.employee object at 0x03550580>, 4: <__main__.employee object at 0x035503B8>, 5: <__main__.employee object at 0x03550FB8>}

我的问题是:如何在main方法中使用循环打印名称和年龄?

两种方法。字典存储每个employee实例(顺便说一句,应该是Employee(。

您可以打印实例的属性,也可以更改尝试打印对象时发生的情况。

前者:

for key, e in employee_collection.items():
print(f'{x} {e.name} {e.age}')

后者:

class Employee:
...
def __str__(self):
return f'{self.name} {self.age}'

for e in employee_collection.values():
print(e)

要遍历字典,您可以使用其keys()values()items()。由于您想要同时使用键 (x( 和值 (employee(,因此items()将所有字典键值对作为所谓的tuple返回列表:

for x, employee in employee_collection.items():
print(f'Number: {x}, Name: {employee.name}, age: {employee.age}')  # this is printing a format-string

最新更新