python中的 __repr__和__str__】的更多相关文章

__repr__,被内置函数repr用于把一个对象用"官方"的字符串形式表示出来(终端友好)    1.值传给eval()来返回一个对象的字符串表示形式    2.否则返回一个尖括号括起来的字符串,包含了对象类型的名称和附加的信息通常包括对象的名称和地址    3.一个类可以通过 __repr__方法来控制它的实例返回内容(也就是以上两点都通可以通过__repr__方法来定制)    4.返回 Unicode 字符串(str 类型)    __str__,被str(object) 和内…
1.%s,%r的区别 在进行格式化输出时,%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别. %s ⇒ str(),比较智能: %r ⇒ repr(),处理较为简单和直接: 处理一些简单对象时,二者几乎没有差别,本文重点列举一些二者的差异化用法: 1.1 处理字符串时 >> s = 'world' >> print('hello %s'%s) hello world >> print('hello %r'%s) hello 'w…
1. python中的魔法方法, 类似__init__, __str__等等,这些内置好的特定的方法进行特定的操作时会自动被调用 2. __init__的使用方法 class 类名(object):    def __init__(self):        print("hhahhah")对象1 = 类名() 打印结果:hhahhah 说明init的方法实例化对象的时候会自动初始化调用 3. __str__的使用方法 class 类名(object):    def __str__(…
__repr__和__str__都是python中的特殊方法,都是用来输出实例对象的,如果没有定义这两个方法在打印的时候只会输出实例所在的内存地址 这种方式的输出没有可读性,并不能直观的体现实例.python提供了__repr__和__str__这两种方法来改进,如下: 在第二个例子中第一次直接输出实例并没有返回str,只改变了print的输出,由此可见__repr__改变的是所有的输出,而__str__改变的是print输出,所以当我们没有重构__str__只重构了__repr__同样是可以使…
Python中__repr__和__str__区别 看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c3…
class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c307190> # 看到了么?上面打印类对象并不是很友好,显示的是对象…
很多时候我们在创建一个类的时候,在终端打印类或者查看的时候一般都不会得到一个太满意的结果 class T: def __init__(self): self.color="red" self.count = 2 t = T()t >>> <T object at 0x0000000003444E10> print(t) >>> <T object at 0x0000000003444E10> 类转化为字符串,直接打印结果一般都…
(1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: class adder: def __init__(self,value=0): self.data=value #初始化数据 def __add__(self,other): self.data+=other >>>print(x) <__main__.adder. object at 0x.....> >>>x  <__main__.adder ob…
__str__和repr __str__和__repr__都是python的内置方法,都用与将对象的属性转化成人类容易识别的信息,他们有什么区别呢 来看一段代码 from math import hypot class Vector: def __init__(self, x, y): self.x = x self.y = y def __str__(self): return 'Vector(%r,%r)' % (self.x, self.y) def __abs__(self): retu…
class Test(object): def __init__(self, value='hello, world!'): self.data = value >>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c307190> # 看到了么?上面打印类对象并不是很友好,显示的是对象…