2010-03-17 15 views

उत्तर

41

आपको कोई संदेह नहीं है पहचानकर्ता sum पहले आपके कोड में एक स्थानीय चर नाम के रूप में, और आपके द्वारा बाध्य अंतिम मूल्य int था। तो, उस कोड स्निपेट में, आप int पर कॉल करने का प्रयास कर रहे हैं। print sum इसे कॉल करने का प्रयास करने से ठीक पहले और आप देखेंगे, लेकिन कोड निरीक्षण शायद इसे तेज़ी से प्रकट करेगा।

इस तरह की समस्या यह है कि क्यों विशेषज्ञ पाइथोनिस्टस नए लोगों को बताते रहते हैं "अपने स्वयं के चर के लिए बिल्टिन नामों का उपयोग न करें!" तब भी जब यह जाहिरा तौर पर एक विशिष्ट कोड स्निपेट को चोट पहुँचाने नहीं कर रहा है: यह एक भयानक आदत है, और एक बग बस होने के लिए, यदि आप पहचानकर्ता का उपयोग इंतजार कर इस तरह के sum, file, list, आदि, अपने खुद के वैरिएबल या कार्यों के रूप में के रूप में -)

+1

अक्सर अनुशंसित विकल्प पहचानकर्ताओं पर अंडरस्कोर पोस्टफिक्स डालना है जो अन्यथा आरक्षित शब्दों और अंतर्निहित पहचानकर्ताओं के साथ टकराएगा; यानी 'टाइप_' या 'sum_' या' from_' (यदि आप पहचानकर्ताओं के रूप में प्रीपोज़िशन का उपयोग कर रहे हैं)। – cdleary

1
!

मैं एलेक्स मार्टेलि ने जो कहा है उस पर जोड़ना चाहता हूं कि एक वैरिएबल नाम के रूप में योग का उपयोग न करें, लेकिन यदि आप प्रोग्राम पहले से बहुत लंबे हैं या आप निष्क्रिय हैं और आप को शुरू नहीं करना चाहते हैं (यदि आवश्यक हो) sum2 में योग का मूल्य हस्तांतरण और (आप योग समारोह के साथ काम जारी रखने की अनुमति) अलग-अलग राशि को हटाने के लिए

sum2 = sum 
del sum 

कर सकते हैं

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