Bonjour,
lorsqu'on écrit une fonction f dans une classe A, l'appel a.f où a est une instance de A revient à écrire :Jusque là je comprends. Si je poursuis, comme type(d) possède le descripteur "__get__", lorsqu'on écrit d.__get__, cela revient à écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 d = A.__dict__["f"] d.__get__(a,A)Maintenant, lorsqu'on écrit e.__get__, cela revient à écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 e = type(d).__dict__["__get__"] e.__get__(d,type(d))
En poursuivant de la même manière pour f.__get__, etc. je constate que le processus finit par s'arrêter et qu'on obtient toujours le même type d'objet (method-wrapper '__get__' of wrapper_descriptor object). Je ne sais pas ce qu'est un wrapper_descriptor, mais tout cela est bien obscur pour moi. Par avance merci pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 f = type(e).__dict__["__get__"] f.__get__(e,type(e))
Partager