Considera questo codice:
>>> class Foo():
pass
...
>>> foo = Foo()
>>> foo.a = 'test'
>>> foo.a
'test'
Si può semplicemente sovrascrivere __setattr__
per rendere gli attributi di sola lettura e impedire la loro creazione in fase di runtime, tuttavia:
- Perché questo è il comportamento di default di Python (qualche buona ragione)?
- Esiste qualche pratica per impedirlo senza alterare ogni classe?
- Ti preoccuperesti di questo comportamento nei progetti seri? non lo consideri incline agli errori? oppure puoi semplicemente ignorarlo (basandosi sul completamento del codice IDE nuovo)