Named Tuple در پایتون
مقدمه
namedtuple یه ساختار دادهی سبک و کاربردیه که در ماژول collections از کتابخانه استاندارد پایتون در دسترس هست. این ساختار در واقع یه زیرکلاس از tuple هست که فیلدهاش نامگذاری شدن و به همین خاطر نسبت به tupleهای معمولی خواناتر هست. namedtupleمانند immutabile tuple هستن.
نحوه استفاده
برای ایجاد یک named tuple، باید از تابع namedtuple در ماژول collections استفاده کرد. این تابع دو آرگومان دریافت میکنه:
typename: نام نوع داده بهصورت رشته و field names: نام فیلدها که یک iterable از رشتهها میتونه باشه.
from collections import namedtuple
# Define a named tuple named 'Person' with fields 'name' and 'age'
Person = namedtuple('Person', ['name', 'age'])
# Create an instance of the named tuple
person_instance = Person(name='John', age=25)
# Access fields using dot notation
print(person_instance.name) # Output: John
print(person_instance.age) # Output: 25
مزایا
-
خوانایی: استفاده از
namedtupleخوانایی کد رو زیاد میکنه چون که فیلدها دارای نامهای معنادار میشن. -
immutability: همانندtupleهای معمولی،namedtupleها هم تغییرناپذیر هستند. این ویژگی باعث حفظ یکپارچگی دادهها میشه و از تغییرات ناخواسته جلوگیری میکند. -
کارایی حافظه:
namedtupleها از حافظه بهصورت بهینه استفاده میکنند، چون با زبان C پیادهسازی شدن و نسبت به بقیه کلاسهای custom یا دیکشنریها مصرف حافظه کمتری دارند. -
سازگاری:
namedtupleها باtupleهای معمولی سازگارن یا به عبارت دیگه اینترفیس مشابهی دارن، بنابراین میشه اونها را بدون مشکل در کدهایی که انتظار ساختارtupleدارن هم استفاده کرد.
جمعبندی
namedtupleها زمانی کاربرد دارن که به یک ساختار داده ساده و سبک با مجموعهای ثابت از فیلدها نیاز داریم. این ساختار برای مواردی مانند تنظیمات پیکربندی، نمایش رکوردهای یک مجموعه داده، یا هر موقعیتی که در آن immutability و دسترسی به فیلدها با نام مزیت محسوب میشه مناسب هست. namedtupleها راهی تمیز، مختصر و خوانا برای تعریف ساختارهای دادهای در پایتون فراهم میکنن که در کنار مزایای tupleها قابلیت نامگذاری فیلدهاش رو هم داره.