में बिल्टिन प्रकारों को उपclassing जब बिल्टिन प्रकार subclassing, मैंने अंतर्निहित प्रकार के तरीकों के वापसी प्रकार में पाइथन 2 और पायथन 3 के बीच एक महत्वपूर्ण अंतर देखा। निम्नलिखित कोड सेट के लिए इस दिखाता है:पाइथन 2 और पायथन 3
class MySet(set):
pass
s1 = MySet([1, 2, 3, 4, 5])
s2 = MySet([1, 2, 3, 6, 7])
print(type(s1.union(s2)))
print(type(s1.intersection(s2)))
print(type(s1.difference(s2)))
अजगर 2 के साथ, सभी वापसी मान प्रकार MySet
के हैं। पायथन 3 के साथ, रिटर्न प्रकार set
हैं। परिणाम के बारे में कोई दस्तावेज नहीं मिला, न ही पाइथन 3 में परिवर्तन के बारे में कोई दस्तावेज नहीं मिला।
वैसे भी, मुझे वास्तव में किस चीज की परवाह है यह है: क्या पाइथन 3 में एक आसान तरीका है पाइथन 2 में देखा गया व्यवहार, अंतर्निहित प्रकारों की हर विधि को फिर से परिभाषित किए बिना?
अजगर 2 पर केवल 's1' के प्रकार s2' के प्रकार नहीं प्रासंगिक है आवश्यकता होगी '। – agf
यह इस तरह का है कि 'झूठी + झूठी' '0' है, न कि 'गलत' (' बूल' 'int' का उप-वर्ग है)। –