我知道collections.namedtuple的存在和目的,但我注意到,至少在IDLE(3.2.2)中,这个工厂函数也在functools中:
>>> import functools >>> functools.namedtuple <function namedtuple at 0x024B41E0>
它也按预期存在于集合中,并且功能相同:
>>> import collections >>> collections.namedtuple is functools.namedtuple True
没有我能找到的文档曾经提到过,除了集合之外,还有其他任何地方.那么:这个标准,还是只是一种空洞的怪异?如果它只是空闲,它是一个错误还是一个为什么将命名的小组放在两个地方 – 事实上,在所有地方的functools中,它的扭曲的头脑是否有意义?
解决方法
在Python 3.2.2中,functools.py包含以下导入:
from collections import OrderedDict,namedtuple
很明显,它只是模块实现的便利导入,并不打算成为其公共接口的一部分.