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

如何修改Python类实例默认显示,使其展示类名而非内存地址

自定义Python类实例的显示格式

完全可以实现!你看到的那些<__main__.Animal at 0x...>是Python默认给类实例生成的字符串表示,要让列表打印时显示成[Lion, Gorilla, Tiger, Baboon],只需要在你的Animal类里重写特殊方法就行,核心是__repr__——因为当你打印包含实例的容器(比如列表)时,Python会逐个调用实例的__repr__方法来生成显示内容。

具体实现代码

这里直接给你可运行的示例:

class Animal:
    def __init__(self, name):
        self.name = name  # 初始化时传入动物名称
    
    def __repr__(self):
        # 重写__repr__,返回我们想要的动物名称
        return self.name
    
    # 可选:如果希望单独打印单个实例时也显示名称,可以加上__str__
    def __str__(self):
        return self.name

测试效果

创建实例列表并打印:

animal_list = [Animal("Lion"), Animal("Gorilla"), Animal("Tiger"), Animal("Baboon")]
print(animal_list)

运行后输出就是你想要的:

[Lion, Gorilla, Tiger, Baboon]

简单解释

  • __repr__:负责生成实例的“官方”字符串表示,容器(列表、元组等)会调用这个方法来展示内部元素。它的设计初衷是尽可能让输出的字符串可以通过eval()重建实例,但这里我们直接返回名称更符合你的需求。
  • __str__:是实例的“友好”字符串表示,当你直接print(单个实例)时会被调用,和__repr__配合可以让实例在不同场景下的显示都符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:12:31