2012-05-23 11 views
6

Jestem świadomy istnienia i celu collections.namedtuple, ale zauważyłem, że przynajmniej w IDLE (3.2.2), funkcja ta fabryka jest również w functools:Python functools.namedtuple

>>> import functools 
>>> functools.namedtuple 
<function namedtuple at 0x024B41E0> 

It istnieje również w collections, jak powinien, i jest taka sama funkcja:

>>> import collections 
>>> collections.namedtuple is functools.namedtuple 
True 

docs nie mogę znaleźć kiedykolwiek wspomnieć namedtuple będąc w miejscu innym niż kolekcjach. A więc: czy to standard, czy tylko dziwna inteligencja? Jeśli jest to tylko IDLE, czy jest to błąd, czy też Dlaczego namedtuple byłby w dwóch miejscach - i czy w rzeczywistości, w czyim spaczonym umyśle ma to sens w functools wszystkich miejsc?

Odpowiedz

8

W Python 3.2.2, functools.py zawiera następujące import:

from collections import OrderedDict, namedtuple 

Wydaje się całkiem jasne, że to tylko import wygoda dla realizacji modułu, a nie ma być częścią jego interfejsie publicznym.