تفاوت بین str و repr پایتون در چیست؟
mohsen•2 هفته قبل
ارسال شده در
pythonدر زبان برنامهنویسی پایتون، __str__
و __repr__
دو متد برای تبدیل اشیا به رشتههای قابل خواندن برای انسان هستند. یکی برای کاربران نهایی و دیگری برای برنامه نویسان.
- __repr__: هدف این متد ارائه نمایی دقیق و غیر مبهم از یک شی است، به طوری که اگر ممکن باشد، نتیجهی آن رشتهای قابل استفاده در تابع
eval
باشد. این متد بهطور معمول به توسعهدهندگان کمک میکند تا اشیا را بهتر درک کنند. برای مثال، اگر شماeval(repr(foo))
را اجرا کنید، باید به یک شی مشابهfoo
منجر شود. - __str__: این متد بیشتر برای نمایش اشیا برای نمایش به کاربران مناسب است و هدف آن ارائه نمای قابل خواندن است. به عنوان مثال، ممکن است که یک تاریخ را به فرمت "2023/10/05" نمایش دهد که برای یک کاربر عادی معنا دارد.
برای مثال خروجی این دو متد برای شی datetime را در کد زیر مشاهده می کنید:
>>> import datetime
>>> today = datetime.datetime.now()
>>> str(today)
'2012-03-14 09:21:58.130922'
>>> repr(today)
'datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)'
برای درک بهتر، فرض کنید یک کلاس UUID
در پایتون داریم. متدهای __str__
و __repr__
را به صورت زیر تعریف کرده ایم:
import uuid
class CustomUUID:
def __init__(self):
self.uid = uuid.uuid1()
def __str__(self):
return str(self.uid)
def __repr__(self):
return f"CustomUUID('{self.uid}')"
در این مثال، __str__
یک نمایش کاربرپسند از UUID را برمیگرداند، در حالی که __repr__
نشان میدهد که این شی یک CustomUUID
است و میتوان به راحتی با خروجی داده شده همان شی را ایجاد کرد.
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!