2013-10-06 11 views
6

क्या डिफॉल्टडिफ के डिफ़ॉल्ट_फैक्टरी को बदलने का कोई तरीका है (जब कोई गैर-मौजूद कुंजी कहलाता है तो उसे वापस कर दिया जाता है) इसे बनाया जाने के बाद?* डिफ़ॉल्ट * के बाद डिफ़ॉल्ट डिफॉल्ट वैल्यू को बदलें *

उदाहरण के लिए, जब इस तरह के

d = defaultdict(lambda:1) 

के रूप में एक defaultdict बनाई गई है, d 1 वापसी होगी जब भी किसी गैर-मौजूद कुंजी ऐसे d['absent'] के रूप में कहा जाता है। इस प्रारंभिक परिभाषा के बाद यह डिफ़ॉल्ट मान किसी अन्य मान (उदा।, 2) पर बदला जा सकता है?

उत्तर

10

डिफ़ॉल्ट मान के default_factory विशेषता के लिए नया मान असाइन करें।

default_factory:

यह विशेषता __missing__() विधि द्वारा किया जाता है; अगर यह मौजूद है, या None, अनुपस्थित होने पर इसे कन्स्ट्रक्टर के पहले तर्क से प्रारंभ किया गया है।

डेमो:

>>> dic = defaultdict(lambda:1) 
>>> dic[5] 
1 
>>> dic.default_factory = lambda:2 
>>> dic[100] 
2 
+0

बहुत बढ़िया है, धन्यवाद! –

संबंधित मुद्दे