Les protocoles, ça n'est pas pratique que pour les "builtin". Ça permet de savoir si un objet est une collection dénombrable (collections.iterable), ça permet d'utiliser la notation indexée (plop[machin]) de façon parfois créative, mais en général lisible et concise quand on implémente __setitem__ etc.
Je pense que le pragmatisme de Python choque facilement quand on essaie de plaquer trop rapidement un modèle théorique externe -principe de moindre surprise et de plus grande ergonomie possible, surtout pour le relecteur (et en même temps, Python est tout à fait cohérent avec lui-même).
[^] # Re: Ruby
Posté par feth . En réponse au journal Python comme premier langage de programmation ?. Évalué à 3.
Les protocoles, ça n'est pas pratique que pour les "builtin". Ça permet de savoir si un objet est une collection dénombrable (
collections.iterable), ça permet d'utiliser la notation indexée (plop[machin]) de façon parfois créative, mais en général lisible et concise quand on implémente__setitem__etc.Je pense que le pragmatisme de Python choque facilement quand on essaie de plaquer trop rapidement un modèle théorique externe -principe de moindre surprise et de plus grande ergonomie possible, surtout pour le relecteur (et en même temps, Python est tout à fait cohérent avec lui-même).