تقنية

prepare_class في بايثون: هل تعيد مفتاح metaclass؟

مفتاح metaclass يبقى في قاموس المدخل المؤلف
الأصل يحتفظ بالمفتاح. [1] [2]

افصل الاختيار عن الكلمات المتبقية. [1] [2]

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

لا؛ المفتاح يحذف من النسخة المعادة، ويبقى في الأصل هنا. [1] [2]

  • مدخلنا قاموس بـmetaclass=type وقواعد فارغة. [1] [2]
  • فحص المفتاح في الأصل يعيد True. [1] [2]
  • فحصه في الكلمات المعادة يعيد False. [1] [2]
  • الصنف الميتا المختار type؛ يعاد منفصلًا. [1] [2]
  • اختبرنا 3.12.14؛ تجهيز نطاق أسماء، لا إنشاء Bud. [1] [2]

المثال

from types import prepare_class
k={"metaclass":type}
m,ns,rest=prepare_class("Bud",(),k)
print("metaclass" in k)
print("metaclass" in rest)
print(m is type)

[1] [2]

الحذف من النسخة

المصدر ينسخ القاموس ثم يزيل metaclass قبل تجهيز النطاق. المخرجات True، False، True. إزالته من الكلمات المتبقية لا تلغي اختياره. [1] [2]

مفتاح metaclass يحذف من الكلمات المعادة ويعاد الصنف منفصلًا
الاختيار منفصل. [1] [2]

حدود الضمان

الثلاثية تضم الصنف الميتا والنطاق والكلمات المتبقية، وليست فئة جديدة. نسخ القاموس ليس عميقًا؛ القواعد والأصناف الميتا المخصصة قد تغيّر التجهيز. [1] [2]

المراجع

  1. Python 3.12: types.prepare_class
  2. CPython 3.12.14: class preparation
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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