tgoop.com/pyHints/337
Create:
Last Update:
Last Update:
Monkey Patching
برای این مورد ترجیح میدم از مثال خود کتاب استفاده کنم؛ قطعا ۹۰٪ شما میدونید مانکی پچ چیکار میکنه و ساده هم هست برای همین نمیخوام عملکردش رو توضیح بدم اما جایگاه استفادهاش رو میخوام صحبت کنم (بسیار دیدم که اشتباه استفاده میشه)
لازم نیست اهل ورق بازی باشی تا بدونی که جذابیت بازی ورق (حکم بخصوص) به این هست که دست بر بخوره پس کلاس
CardDeck
کامل نیست مگر اینکه shuffle
رو داشته باشه.ازونجایی که این کلاس
Sequence Protocol
رو رعایت کرده طبق آنچه که صحبت شد؛ از Internal
ها استفاده میکنیم یعنی random.shuffle
.اما
random.shuffle
میگه من به یک MutableSequence
نیاز دارم؛ ی مقدار دقت کنیم روی مثال قبلی MutableSequence
چه متدهایی رو میخواست ؟__len__, __getitem__, __setitem__, __delitem__
با توجه به ارور من
goose typing
ندارم و shuffle
هم به __delitem__
نیازی نداره و فرض رو هم بر این میگیریم که کلاس CardDeck
از یک کتابخونه میاد ( بیاید فرض کنیم کتابخونه بزرگی هست و نمیتونیم بازنویسیش کنیم ) که برنامه نویسش __setitem__
رو اضافه نکرده.BY Python Hints

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