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

ממלא-מקום עבור טיפוס ה-mapping proxy לקריאה-בלבד המוחזר על ידי 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 הוא dict של ארגומנטי מילת-מפתח להעברה למטא-מחלקה. מפתח "metaclass", אם קיים, בוחר את המטא-מחלקה ישירות.

  • exec_body הוא callable אופציונלי שיופעל עם מרחב השמות של המחלקה שהוכן זה עתה; עליו לאכלס אותו בתכונות של המחלקה החדשה.

מחזיר את המחלקה החדשה שנבנתה.

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

חישוב המטא-מחלקה המתאימה והכנת מרחב השמות עבור מחלקה חדשה.

  • name הוא שם המחלקה שעומדת להיווצר.

  • bases הוא tuple של מחלקות בסיס.

  • kwds הוא dict של ארגומנטי מילת-מפתח. מפתח "metaclass", אם קיים, מוסר מתוך ה-kwds המוחזר ומשמש כמטא-מחלקה. אחרת, המטא-מחלקה של bases[0] משמשת, עם נסיגה אל type.

מחזיר tuple בן 3 איברים (metaclass, namespace, kwds) כאשר namespace הוא תוצאת הקריאה ל-metaclass.__prepare__ אם הוגדרה, או dict ריק אחרת, ו-kwds הוא עותק של הקלט שממנו הוסרה כל רשומת "metaclass".