python - 如何使用类实例遍历字典?
问题描述
我是一名实习生,并尝试实现一个字典类。我需要循环并打印类中的对象。我的代码是:
class Shop:
def __init__(self,prodid, prodname, prodtype, prodrating):
self.prodid = prodid
self.prodname = prodname
self.prodtype = prodtype
self.prodrating = prodrating
b1 = Shop("ID1", "My-Bot1", "Fashion1", 5)
b2 = Shop("ID2", "My-Bot2", "Fashion2", 6)
b3 = Shop("ID3", "My-Bot3", "Fashion3", 7)
b4 = Shop("ID4", "My-Bot2", "new born", 6)
b5 = Shop("ID5", "My-Bot3", "newborn", 7)
myDict = {}
myDict["clothing"] = [b1,b2,b3]
myDict["infant"] = [b4,b5]
for items in myDict.items():
for item in items:
print(item)
我无法遍历类实例并打印值。
解决方案
如果您只想打印出对象(我想您会想要实现一个__repr__
方法),那么您可以这样做:
for shops in myDict.values():
for shop in shops:
print(shop)
请注意,如果您正在使用dict.items()
它将返回元组,(key, value)
因此您需要for key, items in myDict.items()
为原始示例执行此操作。
推荐阅读
- java - 当我使用 javamail 将回复邮件发送到 Outlook 帐户时,为什么将回复邮件作为附件发送?
- xamarin.forms - 我想为 xamarin Android 应用程序添加捏和缩放图像编辑功能
- c# - 当 Outlook 在没有“以管理员身份运行”的情况下运行时,无法在客户部署上加载 Outlook 加载项用户控件
- excel - 使用索引选择重复匹配的范围
- azure-active-directory - 我们可以在未加入 Azure AD 的情况下获得 PRT(主刷新令牌)吗?
- python - 在 ECS 任务上运行的 Django 不起作用。请求 webapp 时出现“连接被拒绝”或“无数据响应”
- c++ - DuplicateHandle() 是否进行任何进程间通信 (IPC),如果没有,为什么以参数为目标?
- firebase - Ionic Firebase Google 登录不起作用,控制台上没有错误
- css - 如何将 em/rem 转换为 px?
- angular - 如何在生产构建中更改 Angular 应用脚本的路径?