मैं सीख रहा हूं कि अचार का उपयोग कैसे करें। मैंने एक नामांकित वस्तु बनाई है, इसे एक सूची में जोड़ा है, और उस सूची को चुनने की कोशिश की है। हालांकि, मैं निम्नलिखित त्रुटि मिलती है:एक नामांकित उदाहरण को सही तरीके से कैसे चुनें
pickle.PicklingError: Can't pickle <class '__main__.P'>: it's not found as __main__.P
मैंने पाया है कि अगर मैं एक समारोह के अंदर यह लपेटकर बिना कोड भाग गया, यह पूरी तरह काम करता है। क्या फ़ंक्शन के अंदर लपेटते समय ऑब्जेक्ट को अचार करने के लिए कोई अतिरिक्त कदम आवश्यक है?
from collections import namedtuple
import pickle
def pickle_test():
P = namedtuple("P", "one two three four")
my_list = []
abe = P("abraham", "lincoln", "vampire", "hunter")
my_list.append(abe)
f = open('abe.pickle', 'w')
pickle.dump(abe, f)
f.close()
pickle_test()
दुर्भाग्यवश, अचार नाम के साथ अच्छी तरह से काम नहीं कर रहा है। – Antimony
@ एंटीमोनी: 'अचार' नामक कक्षाओं को ठीक से संभालती है; एक समारोह में परिभाषित वर्ग स्थानीय नामस्थान इतना नहीं है। –
[पाइथन: पिकल प्रकार एक्स नहीं कर सकता, विशेषता लुकअप असफल] (http://stackoverflow.com/questions/4677012/python-cant-pickle-type-x-attribute-lookup-failed) – Air