Comment ne **pas** utiliser __new__ en Python

La plupart des exemples de __new__ que vous trouverez en feuilletant le catalogue ManuFrance contrarient les devises de Python:

  • Il ne devrait avoir qu'une et une seule façon de procéder.
  • Simple vaut mieux que complexe.
  • La lisibilité compte.

__new__ permet toutes sortes de choses surprenantes. C'est bien là le problème.

D'après la documentation:

__new__() est principalement destinée à autoriser les sous-classes de types immuables (comme int, str ou tuple)
pour personnaliser la création d'instance. Elle est également couramment remplacée dans les métaclasses afin de
personnaliser la création de classe.

En bref, pour que votre code ait une odeur de rose, veuillez KISS et méprisez __new__. Mieux, évitez complètement les classes!

Comments