这一章我们通过一系列的问题及例子,一步步的来理解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()输出。
网友评论