tgoop.com/pyHints/14
Last Update:
این یک باگ کاملا شناخته شده و کاملا تکراری هست؛ ممکنه توی مصاحبههای مختلف هم تجربهاش کرده باشید یا دیده باشید.
یک نمونه مصاحبه Amazon بوده برای پایتون (طرف از یک زبان برنامه نویسی دیگه اومده بود سمت پایتون و دنبال کار بود)
اول برای دوستان تازه کار:__setitem__
وقتی اجرا میشه که میخواهید یک key - value رو داخل dictionary بریزید
و __getitem__
وقتی اجرا میشه که میخواهید یک مقدار رو از دیکشری بخونید.
البته اینجا نه بخاطر باگی که وجود داره
اگر بخوام خیلی ساده توضیح بدم :
مسئله اصلی اینجاس که نسخه پایتونی که بصورت دیفالت از سایت پایتون دانلود میشه روی C
کد زده شده و مواردی مثل str, dict, list
از کدهای C
برای اجرا استفاده میکنند.
به همین دلیل وقتی از dict ارث بری بکنید احترامی برای متدهای builtin قائل نمیشه (چون توی C
پیاده سازی شده و کد پایتون شما قابلیت overwrite شدن روی کد C
رو نداره) پس درنهایت چیزی رو میگیرید که توی C
و برای خود پایتون دیکشنری پیاده سازی شده
راه حل :
@PyHints
BY Python Hints

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