python-面向对象-20-重写`__str__`方法

微信扫一扫,分享到朋友圈

python-面向对象-20-重写`__str__`方法

1.基本介绍

object类有一个 __str__()
方法,用于返回一个”对象的描述”,对应于内置函数 str()
,经常用于 print()
方法,帮助我们查看对象的信息。

因为 __str__()
默认在object类中定义,所以子类可以重写这个方法。

不同语言中对应的不同的方法名:

__str__()
toString()
__toString()

2.方法定义

__str__()
默认定义在类 object
当中。

def __str__(self, *args, **kwargs): # real signature unknown
""" Return str(self). """
pass

3.简单示例

示例代码:

class Student(object):
pass
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return "名字:{0},年龄:{1}".format(self.name, self.age)
s1 = Student()
print(s1)
print("--" * 20)
p1 = Person("聂发俊", 100)
print(p1)

运行结果:

<__main__.Student object at 0x0000015E99B5F3C8>
----------------------------------------
名字:聂发俊,年龄:100

程序说明:

  1. 类Student直接继承类object,所以 __str__()
    也直接沿用,所以打印内容格式如下: <模块名.类名 被继承类名 at 内存地址>
    的格式
  2. 类Person继承类object,但是定义了 __str__()
    ,属于子类重写父类方法,采用子类的 __str__()
    方法,所以执行打印的时候,输出: 名字:聂发俊,年龄:100
    .

备注:

更多精彩博客,请访问:聂发俊的技术博客

对应视频教程,请访问: python400

完整markdown笔记,请访问: python400_learn_github

应用程序水平伸缩的最佳实践

上一篇

产品体验报告|【冲呀】基于内容付费订阅的创作支持平台

下一篇

你也可能喜欢

python-面向对象-20-重写`__str__`方法

长按储存图像,分享给朋友