PYHINTS Telegram 12
Python Hints
این کد که احتمالاً بسیار هم می‌بینید و استفاده می‌کنید ۲ تا باگ داره، که ۱ مورد می‌تونه حتی شمارو توی مصاحبه رد کنه می‌تونید باگ‌هارو پیدا کنید ؟ @PyHints
ولی باگ دوم که من حتی توی سورس کد فریمورک‌ها و کتابخانه‌های معروف پایتون هم زیاد دیدم به راحتی میتونه توی مصاحبه‌های اولیه اوضاع رو بر علیه شما بکنه

مشکل باز هم توی این خط هست :

return f"Person(name={self.name!r}, age={self.age!r})"

اگر دقت کنید اسم کلاس hard code شده ینی اگر بعد از مدتی که پروژه بزرگ شد بجای کلاس Person از مثلا Student استفاده بشه و فراموش کنید که
__repr__
رو تغییر بدید؛ بوقت دیباگ کردن کد باعث سردرگمی بزرگی میشه؛
راه حل :
return f"{type(self).__name__}(name={self.name!r}, age={self.age!r})"
که خب
type(self)
میگه که ی instance از کلاس Person هست و وقتی __name__ رو میگیرم دقیقا اسم کلاس رو برمیگردونه ینی Person هر تغییری هم که روی اسم کلاس اعمال بشه هیچ نیازی به تغییر
__repr__
نیست.

توی تصویر این پست هم می‌تونید ببینید :
https://www.tgoop.com/pyHints/7


@PyHints
👍76❤‍🔥6👌321👎1🆒1



tgoop.com/pyHints/12
Create:
Last Update:

ولی باگ دوم که من حتی توی سورس کد فریمورک‌ها و کتابخانه‌های معروف پایتون هم زیاد دیدم به راحتی میتونه توی مصاحبه‌های اولیه اوضاع رو بر علیه شما بکنه

مشکل باز هم توی این خط هست :

return f"Person(name={self.name!r}, age={self.age!r})"

اگر دقت کنید اسم کلاس hard code شده ینی اگر بعد از مدتی که پروژه بزرگ شد بجای کلاس Person از مثلا Student استفاده بشه و فراموش کنید که
__repr__
رو تغییر بدید؛ بوقت دیباگ کردن کد باعث سردرگمی بزرگی میشه؛
راه حل :
return f"{type(self).__name__}(name={self.name!r}, age={self.age!r})"
که خب
type(self)
میگه که ی instance از کلاس Person هست و وقتی __name__ رو میگیرم دقیقا اسم کلاس رو برمیگردونه ینی Person هر تغییری هم که روی اسم کلاس اعمال بشه هیچ نیازی به تغییر

__repr__
نیست.

توی تصویر این پست هم می‌تونید ببینید :
https://www.tgoop.com/pyHints/7


@PyHints

BY Python Hints




Share with your friend now:
tgoop.com/pyHints/12

View MORE
Open in Telegram


Telegram News

Date: |

Each account can create up to 10 public channels 2How to set up a Telegram channel? (A step-by-step tutorial) End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. Add the logo from your device. Adjust the visible area of your image. Congratulations! Now your Telegram channel has a face Click “Save”.! The group’s featured image is of a Pepe frog yelling, often referred to as the “REEEEEEE” meme. Pepe the Frog was created back in 2005 by Matt Furie and has since become an internet symbol for meme culture and “degen” culture.
from us


Telegram Python Hints
FROM American