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

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

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

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

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

تبدیل رشته (هر کلاس به repr نیاز دارد)

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

وقتی یک کلاس سفارشی را در پایتون تعریف می کنید و سپس سعی می کنید یکی از آنها را چاپ کنید نمونه های آن را به کنسول (یا آن را در یک جلسه مترجم بازرسی کنید)، شما یک نتیجه نسبتا رضایت بخش دریافت کنید. تبدیل پیش‌فرض «به رشته». رفتار اساسی و فاقد جزئیات است:def __init__(self, color, mileage): class Car: self.color = color >>> my_car = Car(‘red’, 37281) >>> print(my_car) <__console__.Car object at 0x109b73da0> >>> my_car <__console__.Car object at 0x109b73da0>به طور پیش فرض تمام چیزی که دریافت می کنید یک رشته است که شامل نام کلاس و شناسه آن است نمونه شی (که آدرس حافظه شی در CPython است.) این از هیچی بهتر است، اما خیلی هم مفید نیست. ممکن است با چاپ مستقیم در ادای احترام کلاس یا حتی با افزودن یک سفارشی to_string () سعی در حل این مشکل داشته باشید. روش کلاس های شما:>>> print(my_car.color, my_car.mileage) red 37281ایده کلی در اینجا ایده درستی است – اما قراردادها را نادیده می گیرد و مکانیسم‌های داخلی که پایتون برای مدیریت نحوه نمایش اشیا به عنوان رشته‌ها استفاده می‌کند. به جای ساخت ماشین آلات تبدیل به رشته خود، این کار را خواهید کرد بهتر است متدهای str و repr “dunder” را به کلاس خود اضافه کنید. آنها روش پایتونیک برای کنترل نحوه تبدیل اشیاء به رشته در موقعیت های مختلف هستند بیایید نگاهی به نحوه عملکرد این روش ها در عمل بیندازیم. برای شروع، ما یک متد str را به کلاس Car که ear lier تعریف کردیم اضافه می کنیم: class Car: self.mileage = mileage def __init__(self, color, mileage): self.mileage = mileage def __str__(self): self.color = color return f’a {self.color} car’وقتی اکنون سعی می‌کنید نمونه‌ای از خودرو را چاپ یا بازرسی کنید، یک مورد دریافت خواهید کرد نتیجه متفاوت و کمی بهبود یافته:>>> print(my_car) >>> my_car = Car(‘red’, 37281) ‘a red car’ <__console__.Car object at 0x109ca24e0>بازرسی شی خودرو در کنسول همچنان نتیجه قبلی حاوی شناسه شی را به ما می دهد. اما چاپ شی منجر به رشته ای که با روش str که اضافه کردیم برگردانده شد. >>> my_car و هنگامی که شما سعی می کنید یک شی را به یک رشته تبدیل کنید فراخوانی می شود وسایل مختلف موجود:>>> print(my_car) a red car>>> str(my_car) ‘a red car’ str یکی از روش‌های “dunder” (دو خط زیر) پایتون است ‘a red car’>>> ‘{}’.format(my_car)

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

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

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

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

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

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

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

لینک کوتاه:
0