types --- أسماء للأنواع المدمجة

تعرّف هذه الوحدة أسماءً لبعض أنواع الكائنات التي يستخدمها مفسّر Python القياسي ولكنها غير معروضة كأنواع مدمجة (مثل نوع الدوال أو المولّدات)، إلى جانب عدد قليل من الدوال المساعدة لبناء الأصناف ديناميكيًا.

هذا هو منفذ MicroPython لمجموعة جزئية من وحدة types الخاصة بـ CPython. تُعرض عدة أسماء مستعارة للأنواع التي ليس لها تمثيل مفيد في MicroPython (CodeType وMappingProxyType وSimpleNamespace وTracebackType وFrameType وGetSetDescriptorType وMemberDescriptorType) كعناصر نائبة None بحيث تستمر الشيفرة التي تشير إليها فقط في الاستيراد، لكنها لن تطابق أي كائن حقيقي عبر isinstance().

التوفر: هذه الوحدة جزء من micropython-lib. وهي مُضمّنة افتراضيًا فقط على OpenMV N6 وOpenMV AE3. على كاميرات OpenMV Cam الأخرى يمكن تثبيتها باستخدام mip (أو تجميدها في برنامج ثابت مخصص)؛ انظر إدارة الحزم.

أسماء الأنواع المستعارة

types.FunctionType: type

نوع الدوال المعرّفة من قبل المستخدم والكائنات المنشأة بعبارات def.

types.LambdaType: type

نوع تعبيرات lambda. مطابق لـ FunctionType.

types.GeneratorType: type

نوع كائنات المولّد-المكرّر التي تنتجها دوال المولّدات.

types.MethodType: type

نوع الطرائق المرتبطة بنسخ الأصناف المعرّفة من قبل المستخدم.

types.BuiltinFunctionType: type

نوع الدوال المدمجة مثل len() وsys.exit().

types.BuiltinMethodType: type

نوع الطرائق المرتبطة بالأنواع المدمجة (على سبيل المثال [].append). مطابق لـ BuiltinFunctionType.

types.ModuleType: type

نوع الوحدات المستوردة.

types.CodeType: None

عنصر نائب لنوع كائن code في CPython. دائمًا None في هذا التنفيذ.

types.MappingProxyType: None

عنصر نائب لنوع وكيل التعيين للقراءة فقط الذي يعيده type.__dict__ في CPython. دائمًا None في هذا التنفيذ.

types.SimpleNamespace: None

عنصر نائب لصنف types.SimpleNamespace في CPython. دائمًا None في هذا التنفيذ.

types.TracebackType: None

عنصر نائب لنوع كائنات التتبع العكسي (traceback). دائمًا None في هذا التنفيذ.

types.FrameType: None

عنصر نائب لنوع كائنات الإطار (frame). دائمًا None في هذا التنفيذ.

types.GetSetDescriptorType: None

عنصر نائب لنوع واصفات السمات المعرّفة بواسطة أنواع الامتدادات. دائمًا None في هذا التنفيذ.

types.MemberDescriptorType: None

عنصر نائب لنوع واصفات الفتحات (slot) المعرّفة بواسطة أنواع الامتدادات. دائمًا None في هذا التنفيذ.

الدوال

types.new_class(name: str, bases: tuple = (), kwds: dict | None = None, exec_body: Callable[[dict], None] | None = None) type

إنشاء كائن صنف ديناميكيًا بطريقة تحاكي عبارة class المتوافقة مع PEP 3115.

  • name هو اسم الصنف الجديد.

  • bases هو صف (tuple) من الأصناف الأساسية.

  • kwds هو قاموس من الوسائط المسماة لتمريرها إلى الصنف الفوقي (metaclass). إذا كان المفتاح "metaclass" موجودًا فإنه يحدد الصنف الفوقي مباشرة.

  • exec_body هو كائن قابل للاستدعاء اختياري سيُستدعى مع نطاق أسماء الصنف المُهيّأ حديثًا؛ ويُفترض أن يملأه بسمات الصنف الجديد.

يعيد الصنف المُنشأ حديثًا.

types.prepare_class(name: str, bases: tuple = (), kwds: dict | None = None) tuple[type, dict, dict]

حساب الصنف الفوقي المناسب وتجهيز نطاق الأسماء لصنف جديد.

  • name هو اسم الصنف الذي سيُنشأ.

  • bases هو صف (tuple) من الأصناف الأساسية.

  • kwds هو قاموس من الوسائط المسماة. إذا كان المفتاح "metaclass" موجودًا فإنه يُزال من kwds المُعاد ويُستخدم كصنف فوقي. وإلا يُستخدم الصنف الفوقي لـ bases[0]، مع الرجوع إلى type.

يعيد صفًا ثلاثيًا (metaclass, namespace, kwds) حيث يكون namespace نتيجة استدعاء metaclass.__prepare__ إن كان معرّفًا، أو قاموسًا فارغًا في غير ذلك، ويكون kwds نسخة من المدخل مع إزالة أي مدخل "metaclass".