2012-05-23 22 views
6

Tôi biết về sự tồn tại và mục đích của collections.namedtuple, nhưng tôi đã nhận thấy rằng, ít nhất là trong IDLE (3.2.2), chức năng nhà máy này cũng nằm trong functools:Python functools.namedtuple

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

Nó cũng tồn tại trong collections như mong đợi, và là chức năng tương tự:

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

Không tài liệu tôi có thể tìm thấy bao giờ đề cập đến namedtuple là bất cứ nơi nào khác hơn là các bộ sưu tập. Vì vậy: là tiêu chuẩn này, hay chỉ là một sự kỳ quặc của IDLE? Nếu nó chỉ là IDLE, nó là một lỗi hoặc một Tại sao namedtuple sẽ ở hai nơi - và, quả thực, trong tâm trí bị biến dạng của nó có ý nghĩa trong functools của tất cả các nơi?

Trả lời

8

Trong Python 3.2.2, functools.py chứa nhập khẩu sau:

from collections import OrderedDict, namedtuple 

Nó có vẻ khá rõ ràng rằng nó chỉ là một khẩu thuận lợi cho việc thực hiện của mô-đun, và không có ý định trở thành một phần của giao diện công cộng của nó.