python中__str__ 和 __repr__
2018-02-19 20:44
399 查看
在面向对象编程中,有这两个方法比较特殊, 当打印该对象的时候, 则会掉用__str__() 方法,
__repr__() 方法类似 稍有区别. 看下面代码
Process finished with exit code 0
当打印 me 的时候 , 默认会调用__str__() 方法, 所以就有上面的打印. 其主要区别 如下
__repr__和__str__这两个方法都是用于显示的,__str__是面向用户的,而__repr__面向程序员。主要是 如果在控制台中 直接输入 me 则调用 __repr__ 方法, 看下图
注意事项:
注意 这里 需要用 return 一定要返回一个str 类型 , 否则 会报错
Traceback (most recent call last):__repr__(): frank swiming File "<input>", line 1, in <module>TypeError: __repr__ returned non-string (type NoneType)
即实现这两个特殊方法的时候一定return 一个 str 类型的变量. 不能print 否则就会包上面的错误.
分享快乐,留住感动. 2018-02-19 20:42:59 --frank
__repr__() 方法类似 稍有区别. 看下面代码
class Me(object): def __init__(self, name, hobby): self.name = name self.hobby = hobby def __str__(self): return (' __str__(): '+self.name + ' ' + self.hobby) def __repr__(self): return ('__repr__(): '+self.name + ' ' + self.hobby) me = Me('frank', 'swiming') print(me)结果如下:__str__(): frank swiming
Process finished with exit code 0
当打印 me 的时候 , 默认会调用__str__() 方法, 所以就有上面的打印. 其主要区别 如下
__repr__和__str__这两个方法都是用于显示的,__str__是面向用户的,而__repr__面向程序员。主要是 如果在控制台中 直接输入 me 则调用 __repr__ 方法, 看下图
注意事项:
注意 这里 需要用 return 一定要返回一个str 类型 , 否则 会报错
Traceback (most recent call last):__repr__(): frank swiming File "<input>", line 1, in <module>TypeError: __repr__ returned non-string (type NoneType)
即实现这两个特殊方法的时候一定return 一个 str 类型的变量. 不能print 否则就会包上面的错误.
分享快乐,留住感动. 2018-02-19 20:42:59 --frank
相关文章推荐
- str()和repr()(及''操作符)以及python对json的简单操作
- Python内建函数str()和repr()
- Python中__repr__和__str__区别
- python __str__ & __repr__ & __cmp__
- Python中文字符的理解:str()、repr()、print
- python - __str__ 和 __repr__
- Python中str()与__str__、repr()与__repr__、eval()、__unicode__的关系与区别
- python中str()和repr()区别
- python中 __str__和__repr__
- python的str()和repr()的区别
- Python repr() 或str() 函数
- Python的str()和repr()
- Python--str与repr以及eval的使用方法
- python 字符串创建,遍历,切片,格式化ljust rjust center,find,replace,split,repr,str
- python - __str__ 和 __repr__
- 3分钟tips:Python黑魔法之__repr__和__str__
- Python菜鸟晋级03----repr() 与str() 函数的区别
- Python str() 与 repr() 的区别
- python中str与repr
- python 内建函数 str() 和 repr() 的区别