Re: Un même identifiant pour des objets di fférents ?
[ Nouvelle discussion
| Répondre au groupe
|
fr.comp.lang.python ]
Sujet: Re: Un même identifiant pour des objets di fférents ?
De: mathsatta...@free.fr (Francois)
Groupes: fr.comp.lang.python
Organisation: Guest of ProXad - France
Date: 20. Aug 2008, 01:28:49
References: 1 2 3 4 5 6 7 8
|
Bruno Desthuilliers a écrit :
>> Pour l'instant, je comprends qu'avec obj = MaClasse(), obj.f construit
>> un truc qui fait que f est liée à obj et que donc lorsqu'on applique
>> la méthode f à obj (obj.f()), on a pas besoin de préciser la valeur du
>> paramètre self (obj en l'occurence) dans f.
>
> Le "truc" en question s'appelle une instance de la classe method, et ce
> serait facile à implémenter en pur Python :
>
> class Method(object):
> def __init__(self, func, instance, cls):
> self.im_func = func
> self.im_self = instance
> self.im_class = cls
> def __call__(self, *args, **kw):
> # Q&D unbound method
> if self.im_self is None:
> im_self = args.pop(0)
> if not isinstance(im_self, self.cls):
> raise TypeError("unbound method yadda yadda")
> else:
> im_self = self.im_self
> return self.im_func(im_self, *args, **kw)
Merci bien pour cet exemple d'implémentation 100% Python d'une classe
Method. C'est assez éclairant pour moi. Je commence à comprendre un peu
l'idée « méthode = objet qui enrobe une fonction »
--
François

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|