क्या अचार हमेशा एक निश्चित इनपुट मूल्य के लिए एक ही आउटपुट उत्पन्न करता है? मुझे लगता है कि शब्दकोशों को चुनते समय एक गोचा जा सकता है जिसमें एक ही सामग्री है लेकिन अलग-अलग सम्मिलित/हटाएं इतिहास। मेरा लक्ष्य एक ज्ञापन कार्यान्वयन के लिए, पिकल और SHA1 का उपयोग करके फ़ंक्शन तर्कों का "हस्ताक्षर" बनाना है।क्या पिकलिंग प्रक्रिया निर्धारक है?
उत्तर
मुझे लगता है कि एक ही सामग्री वाले अलग-अलग शब्दकोशों को चुनते समय अलग-अलग सम्मिलित/हटाए गए इतिहासों को चुनते समय गॉचा हो सकता है।
अधिकार:
>>> pickle.dumps({1: 0, 9: 0}) == pickle.dumps({9: 0, 1: 0})
False
यह भी देखें: pickle.dumps not suitable for hashing
मेरा लक्ष्य एक समारोह तर्कों के "हस्ताक्षर" बनाने के लिए अचार और SHA1, का उपयोग कर एक memoize कार्यान्वयन के लिए है।
इसके साथ कई मौलिक समस्याएं हैं। यह एक वस्तु-से-स्ट्रिंग परिवर्तन नक्शे कि समानता वस्तु पहचान की समस्या का सही ढंग से लगता है कि साथ आने के लिए असंभव है:, आप लोगों में वस्तु पदानुक्रम को बदलने के लिए सक्षम हो सकता है
>>> a = object()
>>> b = object()
>>> a == b
False
>>> pickle.dumps(b) == pickle.dumps(a)
True
अपने सटीक आवश्यकताओं के आधार पर कि तब आप हैश:
def hashablize(obj):
"""Convert a container hierarchy into one that can be hashed.
Don't use this with recursive structures!
Also, this won't be useful if you pass dictionaries with
keys that don't have a total order.
Actually, maybe you're best off not using this function at all."""
try:
hash(obj)
except TypeError:
if isinstance(obj, dict):
return tuple((k, hashablize(v)) for (k, v) in sorted(obj.iteritems()))
elif hasattr(obj, '__iter__'):
return tuple(hashablize(o) for o in obj)
else:
raise TypeError("Can't hashablize object of type %r" % type(obj))
else:
return obj
उसी आउटपुट से आपका क्या मतलब है? आपको आम तौर पर हमेशा एक राउंडट्रिप (पिकलिंग -> अनपिक्लिंग) के लिए एक ही आउटपुट प्राप्त करना चाहिए, लेकिन मुझे नहीं लगता कि धारावाहिक प्रारूप को प्रत्येक शर्त में समान होने की गारंटी है। निश्चित रूप से, यह प्लेटफ़ॉर्म और उसके बीच के बीच बदल सकता है।
आपके कार्यक्रम के एक भाग के भीतर, ज्ञापन के लिए पिकलिंग का उपयोग करना ठीक होना चाहिए - मैंने बिना किसी परेशानी के इस योजना का कई बार उपयोग किया है, लेकिन यह काफी सरल समस्याओं के लिए था। एक समस्या यह है कि इसमें हर उपयोगी मामले को शामिल नहीं किया जाता है (फ़ंक्शन दिमाग में आता है: आप उन्हें अचार नहीं कर सकते हैं, इसलिए यदि आपका फ़ंक्शन एक कॉल करने योग्य तर्क लेता है, तो यह काम नहीं करेगा)।
- 1. निर्धारक मतलब क्या है?
- 2. पिकलिंग cv2.KeyPoint कारण पिकलिंग एरर
- 3. क्या सी ++ नाम मैंगलिंग (सजावट) निर्धारक है?
- 4. पायथन में पिकलिंग त्रुटि?
- 5. पायथन मल्टीप्रोसेसिंग पिकलिंग त्रुटि
- 6. संपत्ति निर्धारक
- 7. क्या VxWorks इतना निर्धारक और तेज़ बनाता है?
- 8. क्या निर्धारक कचरा संग्रह एल्गोरिदम बाहर हैं?
- 9. रिटर्निंग निर्धारक वेक्टर - मैटलैब
- 10. स्कैला चेक परीक्षण निर्धारक
- 11. matlab परिशुद्धता निर्धारक समस्या
- 12. एएसएलआर अक्षम होने पर mmap निर्धारक है?
- 13. निर्धारक परिमित ऑटोमाटा
- 14. मेरा केस अभिव्यक्ति गैर-निर्धारक क्यों है?
- 15. सी ++ के लिए पायथन शैली पिकलिंग?
- 16. समवर्ती हैकेल गैर निर्धारक क्यों है जबकि समांतर हैकेल प्राइमेटिव (पैरा और पीएसईसी) निर्धारक?
- 17. सी # उरी लोडिंग गैर निर्धारक?
- 18. फ्लोटिंग पॉइंट त्रुटियों को उत्पन्न करने के लिए एक निर्धारक प्रक्रिया का कारण क्या हो सकता है
- 19. निर्धारक फ़्लोटिंग पॉइंट और .NET
- 20. अपाचे प्रक्रिया मॉडल क्या है?
- 21. पुन: प्रवेश प्रक्रिया क्या है?
- 22. csrss.exe प्रक्रिया क्या करती है?
- 23. हास्केल - आवेदक के मामले में प्रभाव आदेश निर्धारक है?
- 24. मॉलोक वास्तव में गैर-निर्धारक क्यों है? (लिनक्स/यूनिक्स)
- 25. प्रक्रिया निर्माण पर लिनक्स प्रक्रिया कर्नेल स्टैक स्थिति क्या है?
- 26. लिनक्स प्रक्रिया तालिका क्या है? इसमें क्या शामिल होता है?
- 27. क्या एमएसटीएस्ट/वीएस यूनिट परीक्षण में निर्धारक क्लासक्लेनअप होना संभव है?
- 28. क्या मुझे नम्पी का उपयोग करके मैट्रिक्स निर्धारक मिल सकता है?
- 29. क्या सी # सूची <T> निर्धारक पर तत्वों का क्रम है?
- 30. क्या सी # घटना प्रणाली सिंगल-थ्रेड प्रोग्राम के लिए निर्धारक है?