मैं ओवरराइड करने के लिए प्लस __add__
विधि के बारे में पता है, लेकिन जब मैं का उपयोग करने वाले ओवरराइड करने के लिए + =, मैं दो समस्याओं में से एक के साथ समाप्त:क्या पायथन में + = अधिभारित करने का कोई तरीका है?
(1) यदि __add__
mutates स्वयं
z = x + y
, तो
एक्स को म्यूटेट करेगा जब मैं वास्तव में एक्स को उत्परिवर्तित नहीं करना चाहता हूं।
(2) __add__
एक नई वस्तु है, तो
tmp = z
z += x
z += y
tmp += w
return z
बिना डब्ल्यू z += x
के बाद अलग-अलग वस्तुओं के लिए z और tmp बिंदु के बाद से क्रियान्वित किया जाता है कुछ वापस आ जाएगी लौटाता है यदि।
मैं कुछ प्रकार के .append()
विधि बना सकता हूं, लेकिन यदि संभव हो तो मैं +=
को अधिभारित करना पसंद करूंगा।
प्रोग्रामर जो आरटीएफएम एक लुप्तप्राय प्रजाति हैं। – tzot
@tzot एक तरह से, आप F'ing M. को देख रहे हैं ;-) –
क्या आप यह मानते हैं कि जोश पायथन के मैन्युअल लेखकों में से एक है? क्षमा करें, मुझे समझ में नहीं आता कि आपका क्या मतलब है, @ बॉबस्टिन-विस्बीबोन। – tzot