2012-05-23 17 views
6

मैं अस्तित्व और collections.namedtuple के प्रयोजन के बारे में पता कर रहा हूँ, लेकिन मैं देखा है कि, कम से कम प्रयोग में नहीं (3.2.2) में, इस कारखाने समारोह functools में भी है:अजगर functools.namedtuple

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

यह भी collections अपेक्षा के अनुरूप में मौजूद है, और एक ही समारोह है:

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

कोई डॉक्स मैं पा सकते हैं कभी namedtuple कहीं भी संग्रह के अलावा अन्य किया जा रहा है का उल्लेख है। तो: क्या यह मानक है, या सिर्फ एक आइडल अजीबता है? अगर यह सिर्फ आईडीईएल है, तो क्या यह एक बग है या क्यों namedtuple दो स्थानों पर होगा - और, वास्तव में, किसके युद्ध में दिमाग में यह सभी जगहों के functools में समझ में आता है?

from collections import OrderedDict, namedtuple 

यह बहुत स्पष्ट लगता है कि यह मॉड्यूल के कार्यान्वयन के लिए सिर्फ एक सुविधा आयात है, और इसकी सार्वजनिक इंटरफ़ेस का हिस्सा बनने का इरादा नहीं है:

उत्तर

8

अजगर 3.2.2 में, functools.py निम्न आयात होता है।