美文网首页
Python3 - 改变对象的字符串显示

Python3 - 改变对象的字符串显示

作者: 惑也 | 来源:发表于2018-12-24 17:19 被阅读35次

问题

改变对象实例的打印或显示输出,让它们更具可读性。

解决方案

要改变一个实例的字符串显示,可重新定义它的__str__()__repr__()方法。例如:

class Pair(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __repr__(self):
        return f"Pair({self.x!r}, {self.y!r})"

    def __str__(self):
        return f"({self.x!s}, {self.y!s})"

__repr__() 方法返回一个实例的代码表示形式,通常用来重新构造这个实例。内置的 repr() 函数返回字符串,与我们使用的交互式解释器显示的值是一样的。
__str__() 方法将实例转换为一个字符串,使用 str()print() 函数会输出这个字符串。比如:

p = Pair(3, 4)

p
Pair(3, 4)   # __repr__() output

print(p)
(3, 4)   # __str__() output

在格式化的时候,可以使用不同的字符串显示形式。其中 “!r” 对应 repr(); “!s” 对应 str(); “!a” 对应 ascii()。 特别地,!r 格式化代码,表示输出时使用 __repr__() 来代替默认的 __str__()。示例:

p = Pair(3, 4)

print(f"p is {p!r}")
p is Pair(3, 4)

print(f"p is {p}")
p is (3, 4)

讨论

自定义 __repr__()__str__() 通常是很好的习惯,因为它能简化调试和实例输出。
如果 __str__()没有被定义,那么就会使用 __repr__() 来代替输出。

相关文章

  • Python3 - 改变对象的字符串显示

    问题 改变对象实例的打印或显示输出,让它们更具可读性。 解决方案 要改变一个实例的字符串显示,可重新定义它的__s...

  • Python3 CookBook学习笔记 -- 类与对象

    1. 改变对象的字符串显示 你想改变对象实例的打印或显示输出,让它们更具可读性。 需要我们重新定义它的 __st...

  • 类与对象

    类与对象 改变对象字符串显示 repr() 会返回一个实例代码的表示形式 str() 使用str()或print(...

  • Python面向对象之魔术方法

    str改变对象的字符串显示。可以理解为使用print函数打印一个对象时,会自动调用对象的str方法 定义对象的字符...

  • 009.python字符串

    字符串是不可变对象python3中,字符串都是utf-8的 字符串的join方法 作用:将某个可迭代对象用某个字符...

  • 实例打印,__repr__ , __str__

    问题 你想改变对象实例的打印或显示输出,让它们更具可读性。 解决方案 要改变一个实例的字符串表示,可重新定义它的 ...

  • String、StringBuffer、StringBulide

    是什么 String:不可变的字符串,在对象创建后,这个对象的字符序列是不可改变的。适用于字符串不经常改变的场景。...

  • String、StringBuffer与StringBuilde

    String:字符串常量 不可改变的对象 StringBuffer:字符创变量 可改变的对象 线程安全的 Stri...

  • Python3字符串处理函数

    Python3字符串处理函数 Python3

  • 新手应该如何学习python

    1、python语言基础 Python3入门,数据类型,字符串 判断/循环语句,函数,命名空间,作用域 类与对象,...

网友评论

      本文标题:Python3 - 改变对象的字符串显示

      本文链接:https://www.haomeiwen.com/subject/ovmzkqtx.html