हालांकि शीर्षक को तीन प्रश्नों के रूप में व्याख्या किया जा सकता है, वास्तविक समस्या का वर्णन करना सरल है। एक लिनक्स सिस्टम पर मेरे पास अजगर 2.7.3 स्थापित है, और पाइथन 3 असंगतताओं के बारे में चेतावनी देना चाहता हूं। इसलिए, मेरा कोड स्निपेट (tester.py
) लगता है कि:समानता ऑपरेटर के लिए एक पायथन 3 बहिष्करण चेतावनी को कैसे खत्म करें?
#!/usr/bin/python -3
class MyClass(object):
def __eq__(self, other):
return False
जब मैं इस कोड स्निपेट को अंजाम
के रूप में (केवल एक समस्या है, न कि कोड का एक वास्तविक टुकड़ा दिखाने के लिए मैं अपने प्रोजेक्ट में उपयोग कर रहा हूँ माना)./tester.py:3: DeprecationWarning: Overriding __eq__ blocks inheritance of __hash__ in 3.x
class MyClass(object):
मेरा प्रश्न: मैं इस कोड स्निपेट कैसे बदल सकता हूँ, चेतावनी से छुटकारा पाने के यानी यह संस्करण के लिए संगत बनाने के लिए
./tester.py
मैं निम्नलिखित प्रतिवाद चेतावनी मिलती है 3? मैं समानता ऑपरेटर को सही तरीके से कार्यान्वित करना चाहता हूं, न केवल चेतावनी या कुछ इसी तरह दबा रहा हूं।
'' __eq__' object' से विरासत में मिली वस्तुओं के लिए झूठी वापस आ जाएगी जब तक कि 'एक बस एक डमी हैश समारोह अनिवार्य रूप से लौटने nonesense A' – thkang