1
resposta

Diferença entre Property e getters/setters

Olá professor, tudo bem?

Eu entendi o funcionamento das properties e dos getters e setters. Porém, eu gostaria de saber se existe uma diferença além de apenas mudar a forma da escrita e facilitar o acesso aos atributos diretamente pelo nome.

Obrigado.

1 resposta

Olá Rafael! Tudo certo? Espero que sim. &#128578

Primeiramente, peço desculpas pelo atraso no retorno.

O @property é um decorador de python que foi idealizado para, de fato, ser a maneira "pythonica" de se usar getters e setters. Porém, o @property não oferece apenas as possibilidades de getters e setters, existe a alternativa do deleter também.

A seguir eu mostro um exemplo de classe utilizando o @property:

class Conta:
    def __init__(self, agencia, conta):
        self.__agencia = agencia
        self.__conta = conta

    @property
    def agencia(self):
        return self.__agencia

    @property
    def conta(self):
        return self.__conta

    @agencia.setter
    def agencia(self, nova_agencia):
        self.__agencia = nova_agencia

    @conta.setter
    def conta(self, nova_conta):
        self.__conta = nova_conta

    @agencia.deleter    
    def agencia(self):
        del self.__agencia

    @conta.deleter
    def conta(self):
        del self.__conta

Espero ter ajudado! Quaisquer dúvidas, estou à disposição. 😉

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!