Python的__str__()方法

Python的__str__()方法

说明:本文章的Python代码测试基于Python3.x



__str__()方法的作用:

  1. 不定义__str__方法,print输出对象实例时,默认打印对象实例的内存地址
  2. 定义__str__方法,print输出对象实例时,自动调用此方法
  3. 返回值必须是字符串
  4. 在Python中,方法名形如__xxx__()的方法表示此方法具有特殊的功能,也称为魔法方法

验证

  1. 不定义__str__方法,print输出对象实例时,默认打印的是对象的内存地址
# 创建学生类
class Stu():
    def __init__(self, name, age):
        self.name = name
        self.age = age

s = Stu("张三", 18)
print(s)

输出:

<__main__.Stu object at 0x000002526AF05A60>

  1. 定义__str__方法,print输出对象实例时,自动调用此方法
class Stu():
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __str__(self):
        return "学生" + self.name + "的年龄是" + str(self.age)

s = Stu("张三", 18)
# 打印对象实例
print(s) 

输出:

学生张三的年龄是18

  1. 返回值必须是字符串
class Stu():
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __str__(self):
        return self.age

s = Stu("张三", 18)
print(s)

输出:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
      7 
      8 s = Stu("张三", 18)
----> 9 print(s)

TypeError: __str__ returned non-string (type int)

因为__str__()返回值非字符串,所以报错TypeError: __str__ returned non-string (type int)



参考文章:

  1. python中__str__()函的用法
  2. Python学习笔记(九):str()方法的用法
  3. python学习——特殊方法__str__的用法
  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值