%r 字符串(repr())的显示
>>> print('%r' % set()){1, 2, 3}
>>> print('%r' % repr(set()))
'{1, 2, 3}'
看得有点晕:
1、两个有何区别?
2、%r(repr()分别什么意思
3、为什么可以去掉重复的1?
4、set():这是集合里列表的意思吗?
请大神指点解疑释惑,感谢!
1. %r的意思是以repr的形式格式化字符串, 另一种是%s, 表示使用str(x)获取字符串格式化
2. repr(x)就是调用对象x.__repr__方法获取表示字符串
3. set是集合, 集合元素是不能重复的. 所以会把1去除
4. set()是调用set构造方法, 传入一个参数: . 简单理解就是把列表转换成集合
print('%r', x) 和 print('%r', repr(x))在这里结果一样, 后者的写法是多余的, 还会影响程序执行性能 repr函数解析:https://fishc.com.cn/thread-216410-1-3.html
set函数解析:https://fishc.com.cn/thread-203522-1-2.html 本帖最后由 lzb1001 于 2022-12-28 21:15 编辑
The_stars 发表于 2022-12-28 20:26
1. %r的意思是以repr的形式格式化字符串, 另一种是%s, 表示使用str(x)获取字符串格式化
2. repr(x)就是调 ...
最后一行是不是写错了?是否应为:
print('%r' % x) 和 print('%r' % repr(x))
另外,两个打印输出的结果好像还是有点差别:
{1, 2, 3}:无单引号,对应__str__是给普通人员看的???
'{1, 2, 3}':有单引号,对应__repr__是给开发人员看的???
lxping 发表于 2022-12-28 20:27
repr函数解析:https://fishc.com.cn/thread-216410-1-3.html
set函数解析:https://fishc.com.cn/thread- ...
感谢大神指点
页:
[1]