सरल और संक्षिप्त प्रश्न। पायथन में दो चरों को स्वैप करना बहुत आसान है: a, b = b, a
। यह ठीक है, मुझे कोई आपत्ति नहीं है :) लेकिन मुझे दिलचस्पी है कि यह आंतरिक रूप से कैसे काम करता है? क्या यह स्वयं द्वारा कुछ अस्थायी चर बनाता है या यह कुछ और दिलचस्प है (मैं शर्त लगाता हूं)?वैरिएबल स्वैपिंग आंतरिक रूप से कैसे काम करता है?
17
A
उत्तर
31
पायथन स्रोत कोड इसे निष्पादित करने से पहले bytecode में परिवर्तित कर दिया गया है। आप देख सकते हैं कि स्वैप disassembler dis
का उपयोग करके आंतरिक रूप से काम करता है बाईटकोड कैसा दिखता है देखने के लिए:
import dis
>>> def f(a,b): a, b = b, a
>>> dis.dis(f)
1 0 LOAD_FAST 1 (b)
3 LOAD_FAST 0 (a)
6 ROT_TWO
7 STORE_FAST 0 (a)
10 STORE_FAST 1 (b)
13 LOAD_CONST 0 (None)
16 RETURN_VALUE
सरल शब्दों में, यह स्टैक पर ए और बी के मूल्यों धक्का, घूमता है (स्वैप) शीर्ष दो तत्व, फिर मूल्यों को फिर से पॉप करता है।
यह भी देखें:
संबंधित मुद्दे
- 1. प्रिंटफ आंतरिक रूप से कैसे काम करता है।
- 2. LINQ आंतरिक रूप से कैसे काम करता है?
- 3. "as" कीवर्ड आंतरिक रूप से कैसे काम करता है?
- 4. LinkedList जावा में आंतरिक रूप से कैसे काम करता है?
- 5. jquery एनिमेट फ़ंक्शन आंतरिक रूप से कैसे काम करता है?
- 6. सी # इवेंटहालर आंतरिक रूप से कैसे काम करता है?
- 7. InputStreamReader.close() आंतरिक रूप से कैसे काम करता है?
- 8. आंतरिक रूप से fgets कैसे काम करता है?
- 9. PHP पीडीओ आंतरिक रूप से कैसे काम करता है?
- 10. एक SQLite कर्सर आंतरिक रूप से कैसे काम करता है?
- 11. फायरबग आंतरिक रूप से कैसे काम करता है?
- 12. बल्क इंसर्ट आंतरिक रूप से कैसे काम करता है?
- 13. आंतरिक कैसे आंतरिक रूप से काम करते हैं?
- 14. EqualityComparer <T> कैसे करता है। डीफॉल्ट आंतरिक रूप से काम करता है?
- 15. कैसे C++ बहुरूपता आंतरिक रूप से लागू करता है?
- 16. मैं कैसे पता लगा सकता हूं कि django आंतरिक रूप से कैसे काम करता है?
- 17. पाइथन स्टोर आंतरिक रूप से कैसे सूचीबद्ध करता है?
- 18. MySQL स्टोर टाइमस्टैम्प आंतरिक रूप से कैसे करता है?
- 19. जावास्क्रिप्ट आंतरिक रूप से शून्य मान कैसे संग्रहीत करता है?
- 20. क्रॉन आंतरिक रूप से नौकरियों को कैसे निर्धारित करता है?
- 21. "है" ऑपरेटर आंतरिक रूप से
- 22. आईआईएस में HTTP फ़ाइल आंतरिक रूप से कैसे काम करता है?
- 23. पाइथन में विधि समाधान और आमंत्रण आंतरिक रूप से कैसे काम करता है?
- 24. इवेंट हैंडलिंग जावास्क्रिप्ट के भीतर आंतरिक रूप से कैसे काम करता है?
- 25. फोनगैप (कॉर्डोवा) आंतरिक रूप से कैसे काम करता है, आईओएस विशिष्ट
- 26. Solr's MoreLike यह घटक आंतरिक रूप से परिणाम प्राप्त करने के लिए कैसे काम करता है?
- 27. डाटाबेस आंतरिक रूप से कैसे काम करते हैं?
- 28. लैम्ब्डा अभिव्यक्ति आंतरिक रूप से कैसे काम करते हैं?
- 29. क्या ldstr आंतरिक रूप से newobj लागू करता है?
- 30. बैश - परीक्षण अगर कोई स्ट्रिंग दूसरे से 'अधिक' है - यह आंतरिक रूप से कैसे काम करता है?
बहुत बढ़िया! तो चाल ROT_TWO है ... बहुत बहुत धन्यवाद! –