__str__
程序员文章站
2022-06-29 08:00:36
当打印一个类的实例时,返回的字符串是对象的地址信息,如<__main__.Student object at 0x109afb310>,很不好看 可通过在类内定义__str__(),这样打印实例时就会返回一个好看的字符串,而且容易看出实例内部重要的数据 定义__str__() 直接输入变量 定义__ ......
当打印一个类的实例时,返回的字符串是对象的地址信息,如<__main__.student object at 0x109afb310>,很不好看
可通过在类内定义__str__(),这样打印实例时就会返回一个好看的字符串,而且容易看出实例内部重要的数据
定义__str__()
class student(object): def __init__(self, name): self.name = name def __str__(self): return 'student object (name: %s)' % self.name print(student('michael')) #输出:student object (name: michael)
直接输入变量
s = student('michael') s #输出:<__main__.student object at 0x109afb310>,打印出来的实例还是不好看
定义__repr__()
因为直接显示实例变量时,它调用的不是__str__(),而是__repr__()
__str__()和__repr__()区别
__str__()返回用户看到的字符串
__repr__()返回程序开发者看到的字符串,即__repr__()是为调试服务的
解决办法是再定义一个__repr__(),但是通常__str__()和__repr__()代码都是一样的
所以,有个偷懒的写法,就是直接将__str__ 赋给__repr__
class student(object): def __init__(self, name): self.name = name def __str__(self): return 'student object (name=%s)' % self.name __repr__ = __str__ s = student('michael') s #输出:student object (name: michael)
推荐阅读
-
python类中的__str__以及__repr__
-
详解Python中__str__和__repr__方法的区别
-
__str__,__repr__,__add__
-
day26(封装,封装的原理,Property ,setter ,deleter,多态,内置函数 ,__str__ , __del__,反射,动态导入模块)
-
python3全栈开发-内置函数补充,反射,元类,__str__,__del__,exec,type,__call__方法
-
python类中的__str__以及__repr__
-
__str__
-
__str__,__repr__
-
Python 的 __str__ 和 __repr__ 方法对比
-
python类中方法__str__()和__repr__()简单粗暴总结