# `def __str__(self)` 这是 Python 类里**专门用来打印对象时显示自定义文字**的方法,叫**字符串方法**

def __str__(self)

这是 Python 类里专门用来打印对象时显示自定义文字的方法,叫字符串方法,超级实用!


1. 它是干什么的?

  • 当你 print(对象) 时,自动触发
  • 默认打印的是一堆看不懂的内存地址(比如 <__main__.Person object at 0x123456>
  • __str__ 可以自定义打印内容,让输出更友好

2. 完整正确写法

class 类名:
    def __init__(self, 属性):
        self.属性 = 属性

    # 字符串方法:必须 return 一个字符串
    def __str__(self):
        return f"自定义显示内容:{self.属性}"

3. 一看就懂的例子

没有 str 时(打印很难看)

class Person:
    def __init__(self, name):
        self.name = name

p = Person("小明")
print(p)  # 输出:<__main__.Person object at 0x105a6e1d0> (看不懂)

加上 str 后(打印很清晰)

class Person:
    def __init__(self, name):
        self.name = name

    # 自定义打印内容
    def __str__(self):
        return f"人物:{self.name}"

p = Person("小明")
print(p)  # 输出:人物:小明

4. 核心规则(必须记住)

  1. 必须 return 字符串,不能 print,不能返回别的类型
  2. 名字固定:__str__双下划线
  3. 只有一个参数:self
  4. 作用:美化 print(对象) 的输出

5. 你最容易犯的错

❌ 错误:

def__str__(self)    # def 和 __str__ 没空格
def __str__(self)   # 没有 return
def _str_(self)     # 单下划线,错了

✅ 正确:

def __str__(self):
    return "字符串"

总结

  • __str__ = 给对象定制打印内容
  • 触发时机:print(对象) 自动调用
  • 必须:return 字符串
  • 格式:def __str__(self):

现在你能分清 __init____str__ 了吗?

  • __init__:初始化属性(造对象)
  • __str__:自定义打印(显示对象)
posted @ 2026-05-28 15:23  ham0921  阅读(28)  评论(0)    收藏  举报