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

