python类与对象详解(1):内建方法重写

这一章我们通过一系列的问题及例子,一步步的来理解python中类与对象的方方面面,在章节里面也会穿插一些设计模式,调试技巧等,欢迎大家阅读转载,不足之处,还请指出。

如果你有一些经验,那么一定知道有时候我们为了简化一些过程会重写类的一些方法,我们现在要用python来进行修改实例的字符串表示:
在进行代码实例之前,先来了解一下python中的一个函数eval()函数,这个函数可以进行字符串到实例的转化,repr函数可以进行实例到字符串的转换,可以这样理解:eval(repr(x)) == x

class Pair:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def __repr__(self):
        return 'Pair(%r, %r)' % (self.x, self.y)

    def __str__(self):
        return '(%s, %s)'.format(self.x, self.y)

运行结果

>>> p = Pair(3,4)
>>> p
Pair(3, 4)
>>> print(p)
(3, 4)

说明一下这个小例子的运行原理:当我们直接打印实例p时,会默认调用repr()函数进行输出,当我们使用print打印的时候,其也是默认调用str()内建函数进行输出的。

里面需要注意以下点:

  • repr函数返回需要用%r来表示应该使用repr()输出。
    原文作者:KillerManA
    原文地址: https://www.jianshu.com/p/8dbeda5e0ba7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞