前言
先推荐一首歌 二虎的你一定要幸福
进入正题
- repr和str这两个方法都是用于显示的,str是面向用户的,而repr面向程序员。
面试命中率很高的题,废话不说上代码
class MyString(object):
def __init__(self, obj):
"""
c初始化
:param obj: iterable
"""
self.obj = obj
def __iter__(self):
return iter(self.obj)
def __str__(self):
return "这是str函数返回的,传入的对象是: %s"%self.obj
def __repr__(self):
return "这是repr函数返回的,传入的对象是: %s"% self.obj
1 先说str 是在print 时候解释器默认调用的,你可以自定义该方法,你可以天马行空的写入内容
调用之后
my_string = MySting(list(range(10)))
print my_string
输出结果
这是str函数返回的,传入的对象是: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2 再说repr 是在交互环境打印友好信息的
In [1]: from iters import *
In [2]: my_iter = MyIter(list(range(10)))
In [3]: my_iter
Out[3]: 这是repr函数返回传入的对象是 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
网友评论