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

Python自定义类对象显示异常如何解决?输出奇怪字符串问题

问题解决方法

你遇到的核心问题有两点:

  • Python对象本身不会记录指向它的变量名,直接打印对象会输出默认的实例描述(类型+内存地址)
  • 类方法的第一个参数惯例用self指代实例本身(你用name语法上没问题,但容易造成概念混淆)

修改后的代码

class Test:
    def __init__(self, obj_name, item):
        # 给实例绑定两个属性:存储要显示的名称obj_name,以及传入的item
        self.obj_name = obj_name
        self.item = item
    
    def display(self):
        # 打印实例的名称属性和item属性
        print(f"Name: {self.obj_name}\nItem: {self.item}")

# 创建实例时,显式传入要显示的名称"testname"和item值"test"
testname = Test("testname", "test")
testname.display()

关键说明

  1. __init__方法调整:
    • 用self作为第一个参数(Python类方法的通用惯例),明确指代当前实例对象
    • 添加obj_name参数,让你在创建实例时主动传入想要显示的名称,并将其绑定为实例的属性
  2. display方法修正:
    • 打印self.obj_name而非实例本身,这样就能输出你期望的名称内容
  3. 原代码的问题:
    原代码中print(f"Name: {name}")里的name是实例对象本身,Python默认会输出对象的类型(__main__.Test)和内存地址(0x7f76f0733f10),这就是你看到的“奇怪字符串”的来源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:50:33