Sto provando a definire una classe con una proprietà di sola lettura in un Python; Ho seguito la documentazione Python e si avvicinò con il seguente codice:python - perché la proprietà di sola lettura è scrivibile?
#!/usr/bin/python
class Test:
def __init__(self, init_str):
self._prop = init_str
@property
def prop(self):
return self._prop
t = Test("Init")
print t.prop
t.prop = "Re-Init"
print t.prop
Ora quando provo ad eseguire il codice anche se mi aspetto errore/eccezione lo vedo sempre eseguito normalmente:
$ ./python_prop_test
Init
Re-Init
mio Python la versione è 2.7.2. Quello che sto vedendo, è previsto? Come assicurarsi che una proprietà non sia impostabile?
La classe vecchio stile non dà la priorità al descrittore di dati 'property'; ti consente di ombreggiare l'attributo nell'istanza dict. – eryksun