gpt4 book ai didi

python - 为什么 Python 的 namedtuple 实例是从字符串模板创建的?

转载 作者:太空宇宙 更新时间:2023-11-04 06:05:34 25 4
gpt4 key购买 nike

当我阅读 Python 的 collections 模块 ( http://hg.python.org/cpython/file/2.7/Lib/collections.py#l234 ) 的源代码时,我发现 namedtuple 函数从一个字符串模板创建了一个类的定义,它是用 exec 执行。为什么不像在编写装饰器时那样简单地在函数内部定义一个类来完成呢?在我看来,它会是更具可读性和更可靠的解决方案,不是吗?我敢打赌 Python 核心开发人员知道他们在做什么,那么我在这里错过了什么?

最佳答案

Raymond Hettinger 在他的 original ActiveState recipe 中简要提到了这一点:

Thanks to Peter Kovac pointing-out deficiencies in the keyword argument checking. Because of his comments, the recipe has evolved to its current exec-style where we get all of Python's high-speed builtin argument checking for free. The new style of building and exec-ing a template made both the __new__ and __repr__ functions faster and cleaner than in previous versions of this recipe.

关于python - 为什么 Python 的 namedtuple 实例是从字符串模板创建的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22338327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com