tgoop.com/pyHints/12
Create:
Last Update:
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