You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历Python列表打印属性并查看自定义对象内部内容?

解决CSV读取后City对象遍历打印问题

1. 解决City对象打印显示内存地址的问题

Python中直接打印对象时,默认调用父类object的__str__()方法,只会输出对象的内存地址。要让打印时显示对象内部属性,只需在City类中重写__str__()或__repr__()方法:

示例代码:

class City:
    def __init__(self, city_name, meal_type, price):
        self.city_name = city_name
        self.meal_type = meal_type
        self.price = price

    # 重写__str__,打印时返回自定义的属性字符串
    def __str__(self):
        return f"City(city_name='{self.city_name}', meal_type='{self.meal_type}', price={self.price})"

    # 可选:重写__repr__,在交互式环境或列表打印时更友好
    def __repr__(self):
        return self.__str__()
  • __str__()用于面向用户的友好显示,直接print(obj)时调用
  • __repr__()用于面向开发者的精确表示,打印列表等集合时会自动调用

2. 遍历meals列表打印所有行的属性值

有两种简单实现方式:

方式一:利用重写的打印方法直接遍历

如果已经重写了__str__或__repr__,直接遍历列表打印每个对象即可:

import csv

# 读取CSV并创建meals列表(假设CSV列名:city_name、meal_type、price)
meals = []
with open('meals.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        city_obj = City(
            city_name=row['city_name'],
            meal_type=row['meal_type'],
            price=float(row['price'])
        )
        meals.append(city_obj)

# 遍历打印
for item in meals:
    print(item)

方式二:手动指定打印属性

如果不想修改City类,也可以在遍历时直接访问对象属性打印:

for item in meals:
    print(f"城市:{item.city_name},餐品类型:{item.meal_type},价格:{item.price}")

内容的提问来源于stack exchange,提问作者Sarukira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:55:20