Comments on: La différence entre __new__ et __init__ en Python http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: Gilles Lenfant http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-162869 Thu, 02 Jul 2015 15:26:51 +0000 http://sametmax.com/?p=3534#comment-162869 On pourra aussi noter que new est la seule classmethod implicite de Python (il n’est pas nécessaire de précéder la méthode new du décorateur @classmethod)

]]>
By: Sam http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-5084 Sat, 12 Jan 2013 09:05:47 +0000 http://sametmax.com/?p=3534#comment-5084 @Krypted: peewee a un exemple d’utilisation de __new__ en prod. Il faut le lire lentement par contre :-)

@jpcw: Oui mais dans les docs on lit immutable partout, donc je garde volontairement le terme pour qu’un débutant puisse faire facilement le lien. Il faut faire des concessions.

]]>
By: jpcw http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-5082 Sat, 12 Jan 2013 07:39:42 +0000 http://sametmax.com/?p=3534#comment-5082 s/immutable/immuable/g
ça sonne quand même beaucoup mieux, et ça n’entache plus la qualité de l’article.

]]>
By: Etienne http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-5076 Fri, 11 Jan 2013 22:00:51 +0000 http://sametmax.com/?p=3534#comment-5076 super les exemples

]]>
By: stoof http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-5072 Fri, 11 Jan 2013 18:29:24 +0000 http://sametmax.com/?p=3534#comment-5072 Pourquoi faire compliqué quand on peux faire simple. Très bon post.

]]>
By: Sam http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-5067 Fri, 11 Jan 2013 15:51:12 +0000 http://sametmax.com/?p=3534#comment-5067 @Kontre: j’avais vu ça. Je pense qu’ils font ça pour des raisons de perf.

@Amirouche: si j’ai pas le code, je peux pas debug :-)

]]>
By: Krypted http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-5066 Fri, 11 Jan 2013 15:42:45 +0000 http://sametmax.com/?p=3534#comment-5066 Très bon article! Merci.
Si quelqu’un a des exemples de __new__ utilisé en production ce serait pas mal.

Donc d’après ce que je comprends, on utilise __new__quand on veut utiliser des méthodes d’une classe immutable c’est ça ?

Un petit article sur les immutables pourrait peut être intéresser d’autres personnes aussi :)

(Ah et hors sujet total: http://www.linfo.re/Un-python-voyage-sur-l-aile-d-un-avion
Héhé ça embouche un coin aux fans de PHP ça hein! C’est pas un éléphant qui ferait ça!)

]]>
By: Kontre http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-5064 Fri, 11 Jan 2013 15:25:56 +0000 http://sametmax.com/?p=3534#comment-5064 Un autre exemple, c’est numpy : un numpy.array utilise __new__, donc quand on veut créer une classe enfant, c’est plus délicat. Surtout que ça utilise encore une autre fonction derrière.Bref, c’est le bazar : http://docs.scipy.org/doc/numpy/user/basics.subclassing.html

]]>
By: Amirouche http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-5063 Fri, 11 Jan 2013 15:24:22 +0000 http://sametmax.com/?p=3534#comment-5063 Super, j’ai appris plein de truc, mes idées sont plus clairs. J’avais déjà vu un exemple de ChaineOrdonnable qui héritais de str et ça faisait que la comparaison était faites sur la deuxieme valeur passé en argument, par exemple ça donnait:

»»» ChaineOrdonnable('Sam', 1) > 
ChaineOrdonnable('Amirouche', 0)

Chez moi quand je fait super(str, cls).__new__(cls, value) il me dit

TypeError: basestring.__new__(foo) is not safe, use str.__new__()

Merci à toi.

]]>
By: Sam http://sametmax.com/la-difference-entre-__new__-et-__init__-en-python/#comment-5057 Fri, 11 Jan 2013 12:47:13 +0000 http://sametmax.com/?p=3534#comment-5057 J’ai mis quelques exemples en plus du coup. Dis moi si ça mérite des ajouts.

]]>