In python, how can I simulate a read-only property in classes?

2

I'd like to know how I can simulate a read-only property in Python .

For example, I have the following code:

class IPInfo(object):
     def __init__(self, ip):
         self.ip = ip;


ip = IPInfo(object)

ip.ip = 'aqui é possível editar, mas quero desabilitar isso';

print ip.ip #aqui é possível imprimir, pois a leitura é permitida

How could I make the property ip read-only?

    
asked by anonymous 20.07.2016 / 18:09

1 answer

3

Declare a property getter-only , using the decorator @property

class IPInfo(object):
    def __init__(self, ip):
        self._ip = ip;

    @property
    def ip (self):
        return self._ip


ip = IPInfo(object)

ip.ip = 'aqui é possível editar, mas quero desabilitar isso';
#A linha acima vai estourar um erro - AttributeError: can't set attribute    

print ip.ip
    
20.07.2016 / 18:12