标准库中 attrgetter 内部的函数 g 是为了增强可读性吗?

2017-08-03 15:07:53 +08:00
 pppy
def attrgetter(*items):
    if len(items) == 1:
        attr = items[0]
        def g(obj):
            return resolve_attr(obj, attr)
    else:
        def g(obj):
            return tuple(resolve_attr(obj, attr) for attr in items)
    return g

def resolve_attr(obj, attr):
    for name in attr.split("."):
        obj = getattr(obj, name)
    return obj
1747 次点击
所在节点    Python
2 条回复
lolizeppelin
2017-08-03 16:35:12 +08:00
g 是闭包
pppy
2017-08-03 17:16:01 +08:00
@lolizeppelin 看错了 明白了 😝

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

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

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

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

© 2021 V2EX