91 votes

Empêcher la création de nouveaux attributs en dehors de __init__

Je veux pouvoir créer une classe (en Python) qui, une fois initialisée avec , n’accepte pas les nouveaux attributs, mais accepte les modifications des attributs existants. Il y a plusieurs façons de hack-ish que je peux voir pour le faire, par exemple avoir une méthode telle que

et puis l’édition directement à l’intérieur , mais je me demandais s’il y a une façon « appropriée » de le faire?

91voto

Jochen Ritzel Points 42916

Je ne l’utiliserais pas `` directement, mais vous pouvez ajouter une fonction pour « geler » explicitement une instance:

34voto

Yoann Points 3583

Si quelqu’un est intéressé à le faire avec un décorateur, voici une solution de travail:

Assez simple à utiliser:

résultat:

7voto

katrielalex Points 40655

La bonne façon est de remplacer `` . C’est pour ça qu’il est là.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X