"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > اسمه Tuples في Python: ما هو النوع؟

اسمه Tuples في Python: ما هو النوع؟

نشر في 2025-03-24
تصفح:152

Named Tuples in Python: what type are they?

المسمى 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

في ملخص:

  • P عبارة عن فئة تم إنشاؤها ديناميكيًا بواسطة اسمها.
  • مثيلات p هي كائنات من نقطة النوع التي فئة فرعية أيضًا مترابطة بيانية.

وشيء أخير:

من الشائع جدًا تسمية متغير namedtuple (ما أطلقنا عليه P) بنفس اسم اسم النوع (ما أطلقنا عليه اسم Point) ، فئة تم إنشاؤها ديناميكيًا:

from collections import namedtuple 

Point = namedtuple("Point", "x y")

استخدمت اسمًا مختلفًا لتوضيح التمييز بين اثنين.

بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/guzmanojero/named-tuples-in-python-what-type-are-hey-128m؟1 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفها.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3