À partir de là la cible me semble naturellement être les gens à qui on ne la fait plus quand on leur dit que "Python est simple et facile", donc sûrement ceux qui ont lu le tuto d'Entwanne.
Soit. Dans ce cas, je vais faire un retour complet, suite à un lecture attentive, avec papier, crayon, et du temps.
Je note tout les points qui m'ont posé une difficulté. Ça ne veut pas systématiquement dire qu'il a quelque chose à reprendre, simplement que, pour un individu non expert, ce point peut nécessité un temps de réflexion. À toi de voir ce que tu fais de ces commentaires ensuite.
| class ChatBot:
_callbacks = {}
|
Première subtilité (si, déjà). Tu fais une initialisation hors d'un __init__
. Je connais, je crois que ça vise à associer la variable à l'objet plutôt qu'à ses instances. Spontanément, je ne vois pas l'intérêt de faire comme ça plutôt que de manière usuelle (avec un __init__
). Je devine, sans connaitre, que @classmethod
vise à mettre la méthode dans la classe, et joue donc un rôle similaire. Précision, les décorateurs sont pour moi quelque chose de théorique : je connais (que ce soit par le tuto d'Entwanne ou ceux de Sam&Max), j'ai des usages typiques en tête, mais je n'ai jamais eu concrètement l'occasion de les utiliser). Bref, je vois l'esprit, pas l'intérêt. Après test, ça permet de faire en sorte que ça marche (faire de register_cmd
une méthode normale et mettre _callbacks
dans un __init__
ne permet pas de reproduire le résultat voulu). Sans que je comprenne précisément pourquoi.
Au passage, je ne connaissais pas suppress
.
D'ailleurs, le top, ce serait qu'il existe un mixin, qui puisse apporter la totalité de cette fonctionnalité à n'importe quelle classe.
Mettre un lien, c'est gentil. Mais ça reste un lien vers le milieu d'un 8e chapitre d'un bouquin. Dire ce qu'est un mixin en deux phrases ou une note de bas de page serait très gentil. Je n'ai compris la définition du cookbook qu'après avoir lu le tuto.
| def __new__(mcs, name, bases, attrs)
|
Rien de particulier à dire, c'est bien expliqué, mais mon cerveau a mouliné un moment face à la fonction pour comprendre ce qu'elle faisait. Au visitor, j'ai lâché, et lu en diagonal (saturation).
Je dirai que ça résume bien le tuto : plein de notions inhabituelle (pour moi), mise ensemble de manière cohérente et bien expliquée, mais qui mises bout-à-bout font beaucoup. Le tuto est excellent, et je suis ravi de voir du contenu de ce niveau sur ZdS. Encore bravo pour ta pédagogie.