collections.Counter 中的一段代码不知其意

2015-07-23 20:03:43 +08:00
 cc7756789
def __repr__(self):
        if not self:
            return '%s()' % self.__class__.__name__
        items = ', '.join(map('%r: %r'.__mod__, self.most_common()))
        return '%s({%s})' % (self.__class__.__name__, items)

>>> c = Counter("saasaaaaa")
>>> c
Counter({'a': 7, 's': 2})

operator.__mod__(4, 3) 是取模,但是这个 '%r: %r'.mod 是什么玩意呢?
'%r: %r'.__mod__(4, 3) 等操作都报错,str.__mod__ 是个 <slot wrapper '__mod__' of 'str' objects> 但是我不知道去哪里找源码,官方文档上好像也没有介绍。

2331 次点击
所在节点    Python
3 条回复
zhyu
2015-07-23 20:37:27 +08:00
str 的 mod 是格式化
wodesuck
2015-07-23 21:07:24 +08:00
'%r: %r' % (xxx,xxx)
mulog
2015-07-24 14:13:33 +08:00
string formatting

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/207876

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX