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

Python打印列表中自定义类对象显示内存地址,如何输出指定属性?

解决自定义类对象打印显示问题

你遇到的是Python自定义类默认字符串表示的问题——默认情况下,打印对象会输出它的类名和内存地址,也就是你看到的 <__main__.MyClass object at 0x0000000003129128>。要让它输出你想要的"Zuck",有两种实用的解决方法:

方法一:重写__str__方法

__str__是Python专门用来返回对象「友好字符串表示」的方法,当你用print()打印对象时会自动调用它。修改你的类代码即可实现需求:

from math import *
import time
class MyClass:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    # 新增__str__方法,指定打印对象时返回name属性
    def __str__(self):
        return self.name

people = [MyClass("David",17), MyClass("George",63), MyClass("Zuck",12), MyClass("Mark",18) ]
print(people[2])  # 现在会输出 Zuck

方法二:直接访问对象的name属性

如果你不想修改类的定义,也可以直接打印对象的目标属性,这种方式更灵活:

print(people[2].name)  # 直接输出 Zuck

额外补充

如果需要在Python交互式环境中直接输入对象名,也能看到更清晰的调试信息,可以同时重写__repr__方法(它负责返回对象的「官方字符串表示」):

def __repr__(self):
    return f"MyClass(name='{self.name}', age={self.age})"

这样在命令行里直接输入people[2],会返回MyClass(name='Zuck', age=12),方便你快速查看对象的完整属性信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:00:54