تقنية

object_pairs_hook في بايثون: هل يعمل معه object_hook؟

في المثال، دالة الأزواج تعمل عند تحديد الدالتين.
الأزواج عند تحديد الدالتين.

عند تحديد الدالتين، object_pairs_hook له الأولوية على object_hook. [1]

الخلاصة السريعة

لا؛ في مثال القارئ الافتراضي تعمل دالة الأزواج وحدها. [1]

  • عند تحديد الدالتين، object_pairs_hook له الأولوية على object_hook. [1]
  • دالة الأزواج تتلقى قائمة مرتبة، ودالة الكائن تتلقى قاموسًا عند استخدامها وحدها. [1]
  • مثال مؤلف على CPython 3.12.14: raw أدناه؛ وجود الدالتين يعطي 'pairs'. [1]
  • لم تُستدعَ obj في هذه القراءة؛ حذف دالة الأزواج يعطي 'object'. [1]
  • تحكم: دالة الأزواج وحدها تطابق الناتج؛ يطابق مدخلها قائمةَ زوجٍ مؤلفٍ مستقل، ويعطي الافتراضي {"qty":7}؛ يبقى raw. [1]

أولوية لا تسلسل

عند تحديد الدالتين، object_pairs_hook له الأولوية على object_hook. [1]

مدخلان مختلفان

دالة الأزواج تتلقى قائمة مرتبة، ودالة الكائن تتلقى قاموسًا عند استخدامها وحدها. [1]

دالتان في قراءة واحدة

مثال مؤلف على CPython 3.12.14: raw أدناه؛ وجود الدالتين يعطي 'pairs'. [1]

import json raw='{"qty":7}' def obj(value): return "object" def pairs(value): return "pairs" json.loads(raw,object_hook=obj, object_pairs_hook=pairs) [1]

في التحكم، دالة الكائن تعمل عند تحديدها وحدها.
الكائن عند تحديد دالته وحدها.

الاستدعاء الغائب والتحكم

لم تُستدعَ obj في هذه القراءة؛ حذف دالة الأزواج يعطي 'object'. [1]

json.loads(raw,object_hook=obj) [1]

تحكم: دالة الأزواج وحدها تطابق الناتج؛ يطابق مدخلها قائمةَ زوجٍ مؤلفٍ مستقل، ويعطي الافتراضي {"qty":7}؛ يبقى raw. [1]

المراجع

  1. Python JSON

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.