Really weird issue with shelve (python) -


मैं foo_module.py नामक एक फ़ाइल बनाऊँ जिसमें निम्न कोड है:

  आयात को रोकना, जेडीबी, os से foo_package.g आयात g gshelf = shelve.open ("foo_path") g.shelf.close () मुद्रित करें जेडीबी.वहिदा ("foo_path") # = & gt; Dbhash os.remove ("foo_path")  

उस फाइल के बगल में मैं एक foo_package नामक एक डायरेक्टरी बना देता हूं जिसमें रिक्त __ init __। Py फाइल और फ़ाइल g.py नामक फ़ाइल में शामिल है:

  class g: pass  

अब जब मैं < Code> foo_module.py मुझे एक अजीब त्रुटि संदेश मिलता है:

अपवाद प्रकार त्रुटि: "'कोई भी प्रकार' ऑब्जेक्ट कॉल करने योग्य नहीं है" अनदेखा किए गए में

लेकिन फिर, अगर मैं foo_package से foo की निर्देशिका का नाम बदलता हूं, और foo_module.py में आयात लाइन को बदलता हूं, तो मुझे नहीं मिलता कोई त्रुटि Wtf यहाँ पर जा रहा है?

WinXP पर अजगर 2.6.4 चल रहा है।

मुझे लगता है कि आपने कार्यक्रम के अंत में क्लीन अप से संबंधित 2.6.4 के कोड में मामूली बग को मारा है। यदि आप python -v को चलाते हैं, तो आप वास्तव में देख सकते हैं कि सफाई के समय कौन-सी त्रुटि आती है:

  # क्लीनअप [1] foo_package.g अपवाद प्रकार त्रुटि: "' प्रोग्रामर के अंत में सफाई के दौरान कोई भी प्रकार 'ऑब्जेक्ट कॉल करने योग्य नहीं है'  

पायथन को None के संदर्भ सेट करता है, और ऐसा लगता है कि इसके बारे में भ्रमित हो रहा है g.shelf की स्थिति। एक समाधान के रूप में आप बंद के बाद g.shelf = None सेट कर सकते हैं। मैं अजगर के बग ट्रैकर में एक बग खोलने की भी सलाह दूंगा!


Comments

Popular posts from this blog

sql - dynamically varied number of conditions in the 'where' statement using LINQ -

asp.net mvc - Dynamically Generated Ajax.BeginForm -

Debug on symbian -