OVH Cloud OVH Cloud

Re: Utiliser une fonction comme singleton

4 réponses
Avatar
Méta-MCI
"Méta-MCI" <enleverlesX.XmcX@XmclaveauX.com> a écrit dans le message de
news: ...
> Bonjour !
>
> Puisqu'on ne peut pas copier une fonction, mais que l'on peut lui mettre
> des attributs, on peut très bien l'utiliser, comme une sorte de classe
> singleton.
> Exemple de code :
>
> #----------------------------------------------------------------------
> def single():
> this=single
> this.a=1
> this.b=2
>
> def meth1():
> return this.a,this.b
> this.meth1=meth1
>
>
> obja=single
> obja()
> print obja.a,obja.b,obja.meth1()
>
> obja.b=22
> print obja.a,obja.b,obja.meth1()
>
> objb=single
> print ' A:',obja.a,obja.b,obja.meth1(),'
> B:',objb.a,objb.b,objb.meth1()
>
> objb.b=2002
> print ' A:',obja.a,obja.b,obja.meth1(),'
> B:',objb.a,objb.b,objb.meth1()
>
>
> def meth3():
> return 333
> obja.meth3=meth3
>
> obja.c=3
>
>
> objc=single
>
> print obja.meth3(),obja.c
> print objb.meth3(),objb.c
> print obja.c,objc.b,objc.meth1(),objc.meth3(),objc.c
> #----------------------------------------------------------------------
>
>
>
>
>
>
> Ce message, c'est juste pour remplir un peu ce newsgroup.
>
> @-salutations
>
> Michel Claveau
>
>
>

4 réponses

Avatar
Bruno Desthuilliers
"Méta-MCI" a écrit dans le message de
news: ...

Bonjour !

Puisqu'on ne peut pas copier une fonction,



Non, mais on peut copier un objet implémentant la méthode __call__.

mais que l'on peut lui mettre
des attributs, on peut très bien l'utiliser, comme une sorte de classe
singleton.
Exemple de code :

#----------------------------------------------------------------------
def single():
this=single
this.a=1
this.b=2

def meth1():
return this.a,this.b
this.meth1=meth1


(snip)


J'avoue ne pas bien saisir l'intérêt profond de l'exercice.


Avatar
Laurent Pointal
<zip>

J'avoue ne pas bien saisir l'intérêt profond de l'exercice.


Ben, c'était écrit: "Ce message, c'est juste pour remplir un peu ce
newsgroup."

Avatar
Méta-MCI
Salut !

Ben, c'était écrit




Faut croire que le sujet était si intéressant que les restes du message sont
partis hors de l'assiette.
C'est comme le port-salut : c'est marqué sur la croute, mais on ne mange pas
la croute.

Pas de quoi en faire un fromage, en fin de compte.

@+

Michel Claveau



Avatar
Bruno Desthuilliers
<zip>

J'avoue ne pas bien saisir l'intérêt profond de l'exercice.



Ben, c'était écrit: "Ce message, c'est juste pour remplir un peu ce
newsgroup."



Ah, oui, c'est vrai, maintenant que tu m'en parles...