مجتبی
4 سال پیش توسط مجتبی مطرح شد
4 پاسخ

تفاوت بین __str__ و __repr__ در زبان برنامه نویسی پایتون

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

تشکر
همچنین اگر امکانش هست در بخش بحث و گفتگو قسمتی رو برای موضوعات پایتون و جانگو قرار بدید
تشکر


متفرقه
تگ‌های محبوب
لاراول
php
laravel
متفرقه
reactjs
عمومی
nodejs
html_css
vuejs
وردپرس
پایتون
فلاتر
css
react
اندروید
ثبت پرسش جدید
ارسطو عباسی
تخصص: برنامه‌نویس و توسعه‌دهنده نرم‌افزار - نویسنده و کپی‌رایتر - #پایتون - #جنگو - #لینوکس @arastoo 4 سال پیش مطرح شد
2

چه جالب خودمم به این قضیه فک نکرده بودم ولی کمی جستجو انجام دادم متوجه شدم که str تابع درونی پایتونه که برای نمایش رشته ها در حالت عادی استفاده می شه اما repr در حالت استاندارد و براساس کلیت ماجرا اون رو چاپ میکنه ... اگه به قطعه کد زیر توجه کنید متوجه منظورم میشید:

x=6
repr(x)
'6'
str(x)
'6'

y='a string'
repr(y)
y=" 'a string' "
str(y)
y='a string'

خودم این رو از توی لینک زیر پیدا کردم:
http://pythoncentral.io/the-difference-between-__str__-and-__repr__/


مجتبی
@s.mojtaba1987 4 سال پیش مطرح شد
1

بله خروجی هاش رو که دیده بودم
اما تفاوت بین official و informal رو متوجه نشدم
یعنی چی رسمی و غیر رسمی؟
و فقط هم تو تفاوت بین این دو ذکر شده رسمی و غیر رسمی
یعنی اگر رسمی باشه خروجی ش به عنوان استرینگ دیده نمیشه؟ و هرچی جلوی علامت مساوی قرار داده شده باشه لحاظ میشه؟
خب چه کاربردی داره؟؟
و اگه غیر رسمی باشه یعنی خروجی ش به عنوان استرینگ معرفی میشه؟
و محتوای اون استرینگ هم لحاظ میشه؟


ershad
@samak.666 2 سال پیش مطرح شد
0

در همون لینکی که آقای عباسی گذاشته، گفته شده در صورتی که از تابع eval() استفاده میکنید باید repr را به کار ببرید و نه str. تفاوت هم مربوط به همان کوتیشن ها هست که در حالت دوم با خطا مواجه میشود. مثل کد زیر:

x = "hello world"
print(eval(repr(x)))
print(eval(str(x)))


Mahdi
تخصص: برنامه نویس @abbaszademahdi70 2 سال پیش مطرح شد
0

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام