قبل از اینکه بریم سراغ تصویر :
یک مفهومی داریم توی پایتون به اسم
حدس زدید دیگه تا الان ترکیبی هست از
استفادهاش؛ اجازه میده Interface رو طوری تعریف کنیم که کلاسهای مختلفی رو بشه بجاش استفاده کرد.
اما تصویر بالا؛ فرض کنید شما میخواید یک
رو هم داشته باشه اما
مثال بزنم شاید بهتر درک بشه :
رو در نظر بگیرید؛ و فرض کنید
میخوام مطمئن بشم هرکسی هر موردی رو بهم تحویل میده بعنوان
ادامه پست بعدی
یک مفهومی داریم توی پایتون به اسم
Static Duck Typing
حدس زدید دیگه تا الان ترکیبی هست از
Static typing, duck typing
استفادهاش؛ اجازه میده Interface رو طوری تعریف کنیم که کلاسهای مختلفی رو بشه بجاش استفاده کرد.
اما تصویر بالا؛ فرض کنید شما میخواید یک
Interface
بسازید و مهمتر از اون میخواید runtime type checking
رو هم داشته باشه اما
Interface
شما سختگیری ABC
های موجود رو لازم نداره (میدونیم که تعریف abc
هم کار درستی نیست توی ۹۹٪ موارد).مثال بزنم شاید بهتر درک بشه :
collections.abc.MutableSequence
رو در نظر بگیرید؛ و فرض کنید
Interface
من که قرار هست runtime checking
هم داشته باشه نیاز به ۳ تا متد داره :__len__, __getitem__, __setitem__
میخوام مطمئن بشم هرکسی هر موردی رو بهم تحویل میده بعنوان
Instance
ایی از Interface
باید حتما هر ۳ تا این متدها رو پیادهسازی کرده باشه Hard Rule
هست برای عملکرد درست کدهام برخلاف Duck typing
که soft rule
هست و دیدیم که میگه اگر نیازی به این متد نداری پس پیادهسازی نشدنش هم مشکلی نداره.ادامه پست بعدی
👍20
tgoop.com/pyHints/334
Create:
Last Update:
Last Update:
قبل از اینکه بریم سراغ تصویر :
یک مفهومی داریم توی پایتون به اسم
حدس زدید دیگه تا الان ترکیبی هست از
استفادهاش؛ اجازه میده Interface رو طوری تعریف کنیم که کلاسهای مختلفی رو بشه بجاش استفاده کرد.
اما تصویر بالا؛ فرض کنید شما میخواید یک
رو هم داشته باشه اما
مثال بزنم شاید بهتر درک بشه :
رو در نظر بگیرید؛ و فرض کنید
میخوام مطمئن بشم هرکسی هر موردی رو بهم تحویل میده بعنوان
ادامه پست بعدی
یک مفهومی داریم توی پایتون به اسم
Static Duck Typing
حدس زدید دیگه تا الان ترکیبی هست از
Static typing, duck typing
استفادهاش؛ اجازه میده Interface رو طوری تعریف کنیم که کلاسهای مختلفی رو بشه بجاش استفاده کرد.
اما تصویر بالا؛ فرض کنید شما میخواید یک
Interface
بسازید و مهمتر از اون میخواید runtime type checking
رو هم داشته باشه اما
Interface
شما سختگیری ABC
های موجود رو لازم نداره (میدونیم که تعریف abc
هم کار درستی نیست توی ۹۹٪ موارد).مثال بزنم شاید بهتر درک بشه :
collections.abc.MutableSequence
رو در نظر بگیرید؛ و فرض کنید
Interface
من که قرار هست runtime checking
هم داشته باشه نیاز به ۳ تا متد داره :__len__, __getitem__, __setitem__
میخوام مطمئن بشم هرکسی هر موردی رو بهم تحویل میده بعنوان
Instance
ایی از Interface
باید حتما هر ۳ تا این متدها رو پیادهسازی کرده باشه Hard Rule
هست برای عملکرد درست کدهام برخلاف Duck typing
که soft rule
هست و دیدیم که میگه اگر نیازی به این متد نداری پس پیادهسازی نشدنش هم مشکلی نداره.ادامه پست بعدی
BY Python Hints


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