J'ai utilisé des méthodes basés sur les "property" ou sur la surcharge de "__setitem__" pour typer un peu plus "statiquement" les variables.
J'ai une classe qui s'initialise ainsi :
Ceci étant généralement encapsulé dans un dico en lecture seule et créé par la lib et non l'utilisateur.
params["nit"].value=1#okparams["nit"].value='a'#erreur car mauvais typeparams["nit"]='a'# erreur car lecture seule
Grâce à ce typage, je suis certain par exemple qu'une division donnera le bon résultat même si l'utilisateur a oublié un point.
Ça permet aussi d'envoyer des message d'erreur plus compréhensif (en français par exemple) et lors de la création de la variable et non lors de l'utilisation.
Ça permet aussi d'imposer certains types ce qui permet de réduire le nombre de cas à gérer dans la bibliothèqe.
Et plein d'autres petits avantages.
Je n'utilisais néanmoins cette approche que pour les paramètres utilisateurs, tout le reste du code est typé dynamiquement pour profiter des avantages associés.
[^] # Re: Je ne suis pas tout seul...
Posté par GuiBrother . En réponse au journal [MyFirstPython, nouveau projet ?]Le python c'est bien mangez-en !!. Évalué à 1.
J'ai utilisé des méthodes basés sur les "property" ou sur la surcharge de "__setitem__" pour typer un peu plus "statiquement" les variables.
J'ai une classe qui s'initialise ainsi :
et s'utilise ainsi :
Ceci étant généralement encapsulé dans un dico en lecture seule et créé par la lib et non l'utilisateur.
Grâce à ce typage, je suis certain par exemple qu'une division donnera le bon résultat même si l'utilisateur a oublié un point.
Ça permet aussi d'envoyer des message d'erreur plus compréhensif (en français par exemple) et lors de la création de la variable et non lors de l'utilisation.
Ça permet aussi d'imposer certains types ce qui permet de réduire le nombre de cas à gérer dans la bibliothèqe.
Et plein d'autres petits avantages.
Je n'utilisais néanmoins cette approche que pour les paramètres utilisateurs, tout le reste du code est typé dynamiquement pour profiter des avantages associés.
Sinon il y a Enthought/Traits qui fait du typage statique.