اگر دانلود ویدیو شروع نشد، روی ویدیو راست کلیک کرده و گزینه Save Video As را انتخاب کنید.
ویدیو آموزش تفاوت بین str و repr در پایتون
August 2022
در این بخش از آموزش پیشرفته پایتون به سراغ تفاوت بین متدهای 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 با هدف دیباگ کردن برنامه و نشون دادن یک پیغام به برنامه نویس دیگه استفاده میشه.
اگر ویدیو بالا را دوست داشتید پیشنهاد میکنیم به مطالب زیر هم سر بزنید:
دوره اول آموزش پروژه محور پایتون
Yasin
March 2023پاسخ به نظر
دستتون درد نکنه خیلی مفید بود . واقعا نیاز داشتم .
پاسخ به نظر
الهام
August 2022پاسخ به نظر
آموزش هاتون عالین.. بسیار ممنون و سپاسگزارم.
خداقوت
پاسخ به نظر
حسین نجف زاده
December 2021پاسخ به نظر
خدا قوت. ممنون از آموزش های خوبتون.
پاسخ به نظر
daniayl
October 2021پاسخ به نظر
نکات و مفهومی که به آن اشاره میکنید و توجیه میکنید خیلی جالب هستن باعث میشه که اول اموزش های شما رو چک کنم .
پاسخ به نظر
milad
April 2021پاسخ به نظر
چرا فیلم بزرگ نمیشه
پاسخ به نظر
امیرحسین بیگدلو
April 2021ویدیو مشکلی نداره و بزرگ میشه :/
فرشاد
February 2021پاسخ به نظر
ایول عالی بود !
الان خیلی بهتر مفهوم برنامه نویسی شی گرا رو درک کردم
ممنون ازتون
پاسخ به نظر
SaLaR
December 2020پاسخ به نظر
باز هم مثل همیشه عالی و کاربردی بود
پاسخ به نظر
فرشاد
October 2020پاسخ به نظر
عالی بود ...
پاسخ به نظر
امیرحسین بیگدلو
October 2020میدونم :)