2012-09-10 6 views
9

asyncore module के स्रोत कोड को देखते हुए मैं this विधि पर आया। मैं, संदर्भ के बिना यहाँ शामिल कर लेंगे, क्योंकि यह काफी आत्म निहित किया जा रहा है:स्थानीय वैरिएबल को इसे आवंटित करने से पहले तुरंत प्रारंभिक मान क्यों दें?

def initiate_send(self): 
    num_sent = 0 
    num_sent = dispatcher.send(self, self.out_buffer[:512]) 
    self.out_buffer = self.out_buffer[num_sent:] 

मेरा प्रश्न: क्यों num_sent0 को पहला सेट है, लेकिन फिर तुरंत एक और मूल्य के लिए फिर से सेट?

यदि मुझे यह कहीं भी मिलेगा लेकिन पायथन स्रोत कोड में, मैं कहूंगा कि कोड की यह पंक्ति अनिवार्य है। क्या इसका कोई मतलब है, या यह dead code है?

उत्तर

6

यह मृत कोड है; यह एक स्थानीय चर है, इसलिए यह कभी भी किसी और चीज को प्रभावित नहीं करेगा।

यदि यह एक आवृत्ति चर था, तो dispatcher.send निष्पादित करते समय मूल्य पढ़ सकता था, लेकिन यह यहां पूरी तरह से अनिवार्य है।

asyncore मॉड्यूल अपेक्षाकृत प्राचीन है, लाइन कर दिया गया है के बाद से यह 2000 में एक retabbing से 1999

+0

में पहली committed to the python codebase था और, एक तरफ, यह तब से अपरिवर्तित रहा है। – nneonneo

+0

इसे साफ़ करने के लिए धन्यवाद। मुझे डर था कि पाइथन कैसे काम करता है इसके बारे में मुझे कुछ बुनियादी बात याद आई थी। :) –

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

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