Python怎么改变对象的字符串显示

  介绍

这篇文章主要讲解了Python怎么改变对象的字符串显示,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

<强>问题

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

<强>解决方案

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

两类:
  def __init__(自我,x, y):
  自我。x=x
  自我。y=y
  
  def __repr__(自我):
  返回& # 39;一对({0.倍!r}, {0. y ! r}) & # 39; .format(自我)
  
  def __str__(自我):
  返回& # 39;({0.倍!},{0. y !年代})& # 39;.format(自我)

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

在祝辞祝辞p=对(3、4)   在在在p   对(3、4)# __repr__()的输出   在在在打印(p)   (3,4)# __str__()的输出   祝辞祝辞祝辞

我们在这里还演示了在格式化的时候怎样使用不同的字符串表现形式。特别来讲,<代码> !r 格式化代码指明输出使用<代码> __repr__() 来代替默认的<代码> __str__()> 在祝辞祝辞p=对(3、4)   在在在打印(& # 39;p {0 ! r} & # 39; .format (p))   p是对(3、4)   在在在打印(& # 39;p {0} & # 39; .format (p))   p (3、4)   祝辞祝辞祝辞

<>强讨论

自定义<代码> __repr__() 和<代码> __str__() 通常是很好的习惯,因为它能简化调试和实例输出,例如,如果仅仅只是打印输出或日志输出某个实例,那么程序员会看到实例更加详细与有用的信息。

__repr__()生成的文本字符串标准做法是需要让eval (repr (x))==x为真。如果实在不能这样子做,应该创建一个有用的文本表示,并使用& lt;和比;括起来。比如:

在祝辞祝辞f=开放(& # 39;file.dat& # 39;)   在在在f   & lt; _io。TextIOWrapper name=& # 39; file.dat& # 39;=& # 39;模式" # 39;=& # 39;编码utf - 8 # 39;比;   祝辞祝辞祝辞

如果<代码> __str__() 没有被定义,那么就会使用<代码> __repr__() 来代替输出。

上面的<代码>格式()方法的使用看上去很有趣,格式化代码<代码> {0。x} 对应的是第1个参数的x属性,因此,在下面的函数中,0实际上指的就是自我<代码> 本身:

 def __repr__(自我):
  返回& # 39;一对({0.倍!r}, {0. y ! r}) & # 39; .format(自我)

作为这种实现的一个替代,你也可以使用<代码> %>

 def __repr__(自我):
  返回& # 39;一对(%,% r) & # 39;%(自我。x, self.y) 

看完上述内容,是不是对Python怎么改变对象的字符串显示有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。

Python怎么改变对象的字符串显示