मैं namedtuple._replace()
को लागू करने में परेशानी हो रही थी में descrbed के रूप में काम नहीं करता है, तो मैं सही प्रलेखन के बंद कोड कॉपी:पायथन: namedtuple._replace() प्रलेखन
Point = namedtuple('Point', 'x,y')
p = Point(x=11, y=22)
p._replace(x=33)
print p
और मुझे मिल गया:
Point(x=11, y=22)
बजाय
:
Point(x=33, y=22)
के रूप में दस्तावेज़ में दिखाया गया है।
मैं अजगर 2.6 का उपयोग कर रहा विंडोज 7
पर क्या हो रहा है?
यह वही काम करता है जैसे str.replace() करता है। दोनों स्ट्रिंग्स और नामित टुपल्स अपरिवर्तनीय हैं, इसलिए पुराने प्रतिस्थापन को अपरिवर्तित छोड़ते समय उनके प्रतिस्थापन विधियां * नए * मान उत्पन्न करती हैं। आपकी समस्या का समाधान नया परिणाम एक चर में सहेजना है। –
महान प्रश्न अगर किसी अन्य कारण से किसी नाम पर "संशोधित" करने की इच्छा रखने वाले किसी भी कारण से इस पर यात्रा करने जा रहे हैं। – mbarkhau