المسمى tuples في Python هي امتداد لنوع بيانات tuple المدمج ، مما يتيح لك إعطاء أسماء ذات معنى لعناصر tuple. في كلمات أخرى ، تدعى tuples المسماة مع سمات مسماة. أليس هذا رائع؟
هم جزء من وحدة المجموعات ويوفرون طريقة لتحديد فئات بسيطة غير قابلة للتغيير بطريقة أبسط.
انتظر ماذا ، الفئات؟
نعم ، الفصول.
المسماة هي فئات غير قابلة للتغيير.
هذا هو السحر الذي يحدث: عندما تقوم بإنشاء tuple المسماة باستخدام namedtuple ، فإن النتيجة ليست مثالًا على tuple نفسها ، بل فئة تم إنشاؤها ديناميكيًا ترث من tuple. مرة أخرى ، بارد !!
لنرى كيف يعمل هذا.
from collections import namedtuple P = namedtuple("Point", "x y")
عندما تقوم بتشغيل p = namedtuple ("point" ، "x y") ، فأنت تقوم بإنشاء فئة جديدة باسم Point (كما هو محدد في الوسيطة الأولى لـ NameTuple).
تستخدم وظيفة namedtuple النوع خلف الكواليس لإنشاء فئة جديدة تدعى بشكل ديناميكي ترث من Tuple. يتم تخزين هذه الفئة الجديدة في المتغير p.
وكما هو الحال مع الفئات ، النوع هو النوع.
> type(P) class 'type'
> class A: pass > type(A) class 'type'
وما نوع مثيل اسمه؟
from collections import namedtuple P = namedtuple("Point", "x y") p = P(1,2) > print(type(p)) class '__main__.Point'
p هو مثيل للنقطة النوع. لكنها أيضًا عبارة عن tuple:
> print(isinstance(p, tuple)) True
في ملخص:
وشيء أخير:
من الشائع جدًا تسمية متغير namedtuple (ما أطلقنا عليه P) بنفس اسم اسم النوع (ما أطلقنا عليه اسم Point) ، فئة تم إنشاؤها ديناميكيًا:
from collections import namedtuple Point = namedtuple("Point", "x y")
استخدمت اسمًا مختلفًا لتوضيح التمييز بين اثنين.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3