آدرس : تهران میدان فردوسی خیابان ایرانشهر بین سمیه و طالقانی مجتمع تجاری میلاد واحد 9

پشتیبانی 24 ساعته : 02188867940 – 09927674217

برای مشاهده لیست علاقه مندی ها وارد شوید!

مشاهده محصولات فروشگاه
0

هیچ محصولی در سبد خرید نیست.

چرا هر کلاس به repr نیاز دارد

دسته بندی :اخبار سایت 25 فوریه 2023 علیرضا بابامرادی 427

از repr هنگام جستجوی str. بنابراین، من آن را توصیه می کنم شما همیشه حداقل یک متد repr را به کلاس های خود اضافه می کنید. این اراده تضمین یک نتیجه تبدیل رشته مفید تقریبا در همه موارد، با a اگر متد str را اضافه نکنید، پایتون به نتیجه بازمی گردد در اینجا نحوه اضافه کردن پشتیبانی از تبدیل رشته به کلاس های خود آورده شده است سریع و کارآمد. برای کلاس خودروی ما ممکن است با آن شروع کنیم repr زیر:def __repr__(self): حداقل کار اجرایی return f’Car({self.color!r}, {self.mileage!r})’لطفاً توجه داشته باشید که من از پرچم تبدیل !r استفاده می‌کنم تا مطمئن شوم که رشته خروجی از repr(self.color) و repr (self.mileage) استفاده می‌کند. این به خوبی کار می کند، اما یک نقطه ضعف این است که ما کلاس را تکرار کرده ایم نام داخل رشته فرمت ترفندی که می‌توانید در اینجا برای جلوگیری از این تکرار استفاده کنید، استفاده از ویژگی class.name شی است که همیشه نام کلاس را به عنوان یک رشته منعکس می کند. از str (self.color) و str (self.mileage). وقتی نام کلاس تغییر می کند این باعث می شود که به راحتی به آن پایبند باشید اصل خود را تکرار نکنید (DRY):def __repr__(خود): مزیت این است که شما نیازی به تغییر پیاده سازی repr ندارید f'{self.color!r}، {self.mileage!r})’)نقطه ضعف این پیاده سازی این است که رشته قالب کاملاً مناسب است طولانی و غیر قابل تحمل اما با قالب بندی دقیق، می توانید کد را حفظ کنید زیبا و سازگار با PEP 8. بازگشت (f'{self.__class__.__name__}(‘ ما شی را بررسی می کنیم یا مستقیماً روی آن () repr را فرا می خوانیم:>>> repr(my_car) با اجرای repr بالا، نتیجه مفیدی می گیریم وقتی ‘Car(red, 37281)’چاپ شی یا فراخوانی str() روی آن همان رشته را برمی گرداند زیرا اجرای پیش فرض str به سادگی repr را فراخوانی می کند:’Car(red, 37281)’ >>> print(my_car) >>> str(my_car) ‘Car(red, 37281)’من معتقدم این رویکرد بیشترین ارزش را با مقدار متوسطی فراهم می کند می تواند بدون تامل زیاد اعمال شود. به همین دلیل من همیشه از کارهای اجرایی این نیز یک رویکرد نسبتاً بیسکویت است که سعی کنید یک پیاده سازی repr اساسی را به کلاس های من اضافه کنید. پیاده سازی str:class Car: در اینجا یک مثال کامل برای Python 3، از جمله اختیاری است self.color = color self.mileage = mileage def __repr__(self): def __init__(self, color, mileage): return (f'{self.__class__.__name__}(‘ def __str__(self): f'{self.color!r}, {self.mileage!r})’) return f’a {self.color} car’در پایتون 3 یک نوع داده برای نمایش متن در سراسر تخته وجود دارد: خ. دارای کاراکترهای یونیکد است و می تواند بیشتر شخصیت های جهان را نشان دهد سیستم های نوشتاری تفاوت Python 2.x: unicode Python 2.x از یک مدل داده متفاوت برای رشته ها استفاده می کند نوع برای نمایش متن: str، که به کاراکتر ASCII محدود می شود با توجه به این تفاوت، روش dunder دیگری نیز در آن وجود دارد ترکیبی برای کنترل تبدیل رشته در پایتون 2: unicode. مجموعه و یونیکد که معادل str Python 3 است. در پایتون 2، str بایت ها را برمی گرداند، در حالی که unicode برمی گرداند.

علیرضا بابامرادی

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

  • چنانچه دیدگاهی توهین آمیز باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

لینک کوتاه:
0