ویدیو آموزش تفاوت بین str و repr در پایتون

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

در این بخش از آموزش پیشرفته پایتون به سراغ تفاوت بین متدهای str و repr رفتیم. این دو متد برای زمانی هستش که شما میخواید یک آبجکت رو چاپ کنید:

class Person:
    def __init__(self, name):
        self.name = name


p1 = Person('amir')
print(p1)

 

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

<__main__.Person object at 0x7f2772b0cf50>

 

پاسخی که پایتون برای ما آورده آنچنان مطلوب نیستش و نمیشه چیز زیادی ازش فهمید. برای تغییر دادن این رفتار پایتون از متد str استفاده میکنیم:

class Person:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return self.name


p1 = Person('amir')
print(p1)

 

خب حالا اگه کد بالا رو اجرا کنید نتیحه بهتری رو نمایش میده. در کد بالا به پایتون گفتیم زمانی که یک آبجکت رو چاپ کردیم مقدار name رو نشون بده:

amir

 

حالا متد repr چیه؟ متد repr هم دقیقا زمانی استفاده میشه که شما یک آبجکت رو صدا بزنید. اما تفاوتی که داره اینکه اگه کدتون رو از طریق ترمینال اجرا کنید متد repr فعال خواهد شد. درواقع متد repr برای زمانی هستش که شما قراره یک نتیجه رو به برنامه نویس دیگه نشون بدید اما متد str برای زمانی هستش که شما میخواید یک نتیجه رو به کاربر نشون بدین.

 

برای درک این موضوع داخل ترمنیال، با استفاده از دستور python وارد مفسر پایتون بشید.

حالا کد زیر رو وارد میکنیم:

>>> import datetime
>>> now = datetime.datetime.now()
>>> str(now)
'2019-8-15 10:29:34.786394'
>>> repr(now)
datetime.datetime(2019, 8, 15, 10, 29, 34, 786394)

 

در کد بالا ما زمان الآن رو ریختیم داخل متغیر now.

زمانی که با استفاده از متد str متغیر now رو صدا میزنیم میبینید که نتیجه به شکل یک زمان نشون داده میشه.

اما زمانی که متغیر now رو با متد repr صدا میزنیم نتیجه رو به شکل یک فانکشن میاره.

تفاوت این دو متد اینجا مشخص میشه. متد str برای نشون دادن یک نتیجه به کاربر عادی اما متد repr با هدف دیباگ کردن برنامه و نشون دادن یک پیغام به برنامه نویس دیگه استفاده میشه.

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

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

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

دوره آموزش Multi Threading در پایتون

دوره آموزش GraphQL در پایتون

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



ارسال نظر


Yasin

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

دستتون درد نکنه خیلی مفید بود . واقعا نیاز داشتم .

ارسال نظر



الهام

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

آموزش هاتون عالین.. بسیار ممنون و سپاسگزارم.
خداقوت

ارسال نظر



حسین نجف زاده

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

خدا قوت. ممنون از آموزش های خوبتون.

ارسال نظر



daniayl

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

نکات و مفهومی که به آن اشاره میکنید و توجیه میکنید خیلی جالب هستن باعث میشه که اول اموزش های شما رو چک کنم .

ارسال نظر



milad

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

چرا فیلم بزرگ نمیشه

ارسال نظر



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

2 سال قبل

ویدیو مشکلی نداره و بزرگ میشه :/

فرشاد

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

ایول عالی بود !
الان خیلی بهتر مفهوم برنامه نویسی شی گرا رو درک کردم
ممنون ازتون

ارسال نظر



SaLaR

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

باز هم مثل همیشه عالی و کاربردی بود

ارسال نظر



فرشاد

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

عالی بود ...

ارسال نظر



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

3 سال قبل

میدونم :)

مونگارد