coinCount = [2 for i in range(4)]
total = sum(coinCount)
यह मैं'int' ऑब्जेक्ट प्रतिदेय नहीं है
TypeError: 'int' object is not callable
देता है मुझे समझ नहीं आता क्यों क्योंकि
print type(coinCount)
मुझे
देता हैtype <'list'>
coinCount = [2 for i in range(4)]
total = sum(coinCount)
यह मैं'int' ऑब्जेक्ट प्रतिदेय नहीं है
TypeError: 'int' object is not callable
देता है मुझे समझ नहीं आता क्यों क्योंकि
print type(coinCount)
मुझे
देता हैtype <'list'>
आपको कोई संदेह नहीं है पहचानकर्ता sum
पहले आपके कोड में एक स्थानीय चर नाम के रूप में, और आपके द्वारा बाध्य अंतिम मूल्य int
था। तो, उस कोड स्निपेट में, आप int
पर कॉल करने का प्रयास कर रहे हैं। print sum
इसे कॉल करने का प्रयास करने से ठीक पहले और आप देखेंगे, लेकिन कोड निरीक्षण शायद इसे तेज़ी से प्रकट करेगा।
इस तरह की समस्या यह है कि क्यों विशेषज्ञ पाइथोनिस्टस नए लोगों को बताते रहते हैं "अपने स्वयं के चर के लिए बिल्टिन नामों का उपयोग न करें!" तब भी जब यह जाहिरा तौर पर एक विशिष्ट कोड स्निपेट को चोट पहुँचाने नहीं कर रहा है: यह एक भयानक आदत है, और एक बग बस होने के लिए, यदि आप पहचानकर्ता का उपयोग इंतजार कर इस तरह के sum
, file
, list
, आदि, अपने खुद के वैरिएबल या कार्यों के रूप में के रूप में -)
मैं एलेक्स मार्टेलि ने जो कहा है उस पर जोड़ना चाहता हूं कि एक वैरिएबल नाम के रूप में योग का उपयोग न करें, लेकिन यदि आप प्रोग्राम पहले से बहुत लंबे हैं या आप निष्क्रिय हैं और आप को शुरू नहीं करना चाहते हैं (यदि आवश्यक हो) sum2 में योग का मूल्य हस्तांतरण और (आप योग समारोह के साथ काम जारी रखने की अनुमति) अलग-अलग राशि को हटाने के लिए
sum2 = sum
del sum
कर सकते हैं
अक्सर अनुशंसित विकल्प पहचानकर्ताओं पर अंडरस्कोर पोस्टफिक्स डालना है जो अन्यथा आरक्षित शब्दों और अंतर्निहित पहचानकर्ताओं के साथ टकराएगा; यानी 'टाइप_' या 'sum_' या' from_' (यदि आप पहचानकर्ताओं के रूप में प्रीपोज़िशन का उपयोग कर रहे हैं)। – cdleary