对象可视化
对象的可视化,就是在打印对象的时候按照我们的想要的数据结构返回给我们直观的数据
不做任何可视化直接打印类对象
In [19]: class A:
...: pass
...:
In [20]: print(A())
<__main__.A object at 0x7f81d5b2c9b0>
来类对象 A 类进行可视化
对象可视化是使用__str__来实现的
In [23]: class A:
...: def __init__(self, x, y):
...: self.x = x
...: self.y = y
...: def __str__(self): # 定义一个__str__方法
...: return "A <x: {},y: {}>".format(self.x, self.y)
...: def __repr__(self): # 定义一个__repr__方法
...: return "A ({}, {})".format(self.x, self.y)
...:
In [24]: print(A(3,5)) # 直接访问就可以很直观的看到。传递的参数值了
A <x: 3,y: 5>
In [25]: str(A(4,6)) # str内置方法默认就是调用的对象的__str__方法
Out[25]: 'A <x: 4,y: 6>'
In [26]: repr(A(6,7))
Out[26]: 'A (6, 7)'
上面的例子中定义了两个方法,__str__和__repr__,可以理解为__str__是给我们自己看的,而__repr__是给程序看的
一般我们并不会重写__repr__方法,更多的时候会重写__str__