ویدیو آشنایی با namedTuples در پایتون

امیرحسین بیگدلو July 2023

در پایتون namedTupleها این امکان رو بوجود آوردن تا ما بتونیم به هرکدوم از آیتمها در یک tuple اسم بدیم و برای دسترسی به هرکدوم از اون آیتم ها بتونیم از اون اسم ها استفاده کنیم.

 

برای ایجاد کردن namedTupleها میتونید به شکل زیر کار کنید:

from collections import namedtuple

nt = namedtuple('Person', 'name age height')
p1 = nt('amir', 20, 180)

در کد بالا اول از ماژول collection کلاس namedTuple رو وارد کردیم. در خط دوم یک آبجکت جدید از کلاس namedTuple ایجاد کردیم.

 

به طور کلی کلاس namedTuple دوتا مقدار میگیره. اول اسم اون tuple و بعدی اسم فیلدهایی که قراره تاپلتون داشته باشه. اسم فیلدها رو میتونید به شکل یک لیست و یا string ساده بنویسید.

برای مقدار دهی به اون تاپل، اسم آبجکت رو صدا میزنید و مقدارهاتون رو به ترتیب براش ارسال میکنید.

 

برای خوندن اطلاعات از داخل یک namedTuple میتونید از روش های زیر استفاده کنید:

print(p1)
>> Person(name='amir', age=20, height=180)

print(p1[1])
>> 20

print(p1.name)
>> amir

print(getattr(p1, 'height'))
>> 180

 

در پایتون namedTupleها به شما چندین متد هم میدن که میتونید از اونها استفاده کنید:

اولین متد _asdict هستش و به شما اجازه میده نتیجه رو به شکل یک دیکشنری ببینید:

print(p1._asdict())
>> OrderedDict([('name', 'amir'), ('age', 20), ('height', 180)])

 

متد بعدی _fields هستش که اسم فیلدها رو به شما برمیگردونه:

print(p1._fields)
>> ('name', 'age', 'height')

برخلاف تاپل ها شما میتونید مقادیر یک namedTuple ها رو تغییر بدین. برای اینکار از متد _replace استفاده میکنید:

p1 = p1._replace(name='jack')
print(p1)

>> Person(name='jack', age=20, height=180)

 

اگر ویدیو بالا را دوست داشتید پیشنهاد میکنیم به مطالب زیر هم سر بزنید:

آموزش کار با markdown در پایتون

آموزش متدهای hasattr, getattr, setattr, delattr در پایتون

آموزش فانکشن های any و all در پایتون

دوره اول آموزش پروژه محور پایتون

آموزش آبجکت های container در پایتون

 

ویدیوهای مشابه



آموزش monkey patch در پایتون
امیرحسین بیگدلو

ارسال نظر


محمد دری

2 سال قبل پاسخ به نظر

خیلی عالی ممنون
همچنین باید بگم سایت خوبی دارید هم محتوا هم محیطش
آموزش دیدن توش راحته
هم از نظر اینترنت هم خود پلیر خیلی خوب طراحی شده

ارسال نظر



ehsan

3 سال قبل پاسخ به نظر

با سلام ممنون از زحمات شما

ارسال نظر



نوری

3 سال قبل پاسخ به نظر

عالی

ارسال نظر



مونگارد