पायथन मानक लाइब्रेरी के profile.py
पढ़ते समय मैं असाइनमेंट स्टेटमेंट sys.argv[:] = args
पर आया, जिसका उपयोग प्रोग्राम को प्रोफाइल करने के लिए sys.argv
को संशोधित करने के लिए किया जाता है, सही कमांड लाइन तर्क देखें। मैं समझता हूं कि यह वास्तविक परिचालनों में sys.argv = args[:]
से अलग है, लेकिन प्रभाव में वे मेरे समान दिखते हैं। क्या कोई ऐसी स्थिति है जब कोई एक का उपयोग करना चाहता है, न कि दूसरे? और a[:] = b
एक आम पायथन मुहावरे है?एक टुकड़ा से बनाम बनाम
अद्यतन: इस विशिष्ट स्थिति में एक दूसरे को क्यों चुनता है? (स्रोत profile.py
की main
समारोह में पाया जा सकता है)
धन्यवाद, मुझे एहसास हुआ कि यह एक फर्क अगर वहाँ 'A' –
को अन्य संदर्भ एक उदाहरण देने के लिए उपयोगी हो सकता है कर रहे हैं बनाता है। यदि 'x = [1, 2, 3]', और 'a = x' (इसलिए वे एक ही सूची का संदर्भ देते हैं), 'ए = बी [:]' कर रहे हैं' b' की प्रति के साथ 'a' में _reference_ को बदलता है '; 'x' अपरिवर्तित है। दूसरी तरफ, 'a [:] = b' 'b' के मानों के साथ' a' (जिसका संदर्भ अपरिवर्तित है) के _contents_ को प्रतिस्थापित करता है, जिसका अर्थ है' x' भी संशोधित है; संदर्भ लिंक कभी टूटा नहीं गया था। – ShadowRanger
मैंने अधिक जानकारी जोड़ने के लिए संपादित किया। लेकिन एक उदाहरण एक अच्छी बात होनी चाहिए। मैं इसे जोड़ दूंगा। –