سؤال

أدرك أن هذه الطرق مخصصة للتخليل/التفكيك وليس لها علاقة بوظيفة التخفيض المضمنة، ولكن ما الفرق بين الاثنين ولماذا نحتاج إلى كليهما؟

هل كانت مفيدة؟

المحلول

المستندات قل ذلك

إذا توفرت، في وقت التخليل __reduce__() سيتم استدعاؤه بدون وسيطات ، ويجب أن يعيد إما سلسلة أو tuple.

على الجانب الآخر،

من المفيد في بعض الأحيان معرفة إصدار البروتوكول عند التنفيذ __reduce__.يمكن القيام بذلك عن طريق تنفيذ طريقة تدعى __reduce_ex__ بدلاً من __reduce__. __reduce_ex__, ، عندما يكون موجودًا ، يتم استدعاؤه في التفضيل __reduce__ (لا يزال بإمكانك تقديم __reduce__ للتوافق مع الوراء).ال __reduce_ex__سيتم استدعاء الطريقة مع وسيطة عدد صحيح واحد ، نسخة البروتوكول.

على اليد الممسكة، يقول جويدو أن هذه منطقة يمكن تنظيفها.

نصائح أخرى

__reduce_ex__ ماذا يكون __reduce__ كان ينبغي أن يكون ولكن لم يصبح أبدا. __reduce_ex__ يعمل مثل __reduce__ ولكن تم تمرير بروتوكول المخلل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top