Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Property ou getter e setter - boa prática

Meus caros, no mundo Python, qual é a boa prática? Usar properties ou getters e setters? Gostaria também de uma boa referência para boas práticas de programação em Python.

2 respostas
solução!

Oi Wildener, como você está? Espero que esteja bem ^-^

A maneira "pythônica" é utilizar properties. Mas, pode ter casos onde você precise somente de um setter, então terá que utilizar uma função sem o decorator setter, pois a utilização de um decorator setter exige a implementação de um decorator de getter. Por exemplo:

# funciona como esperado (utilizando apenas a property de getter)
class Livro:

    def __init__(self, titulo):
        self._titulo = titulo


    @property
    def titulo(self):
        return self._titulo

Já no exemplo abaixo, teremos um erro dizendo que a property getter de titulo não foi definida:

class Livro:

    def __init__(self, titulo):
        self._titulo = titulo

    @titulo.setter
    def titulo(self, novo_titulo):
        self._titulo = novo_titulo

A ordem também é importante, uma property de getter deverá vir primeiro que uma property de setter.

Em relação a boas práticas de estilização, recomendo que você leia a respeito do guia de estilo de código Python(PEP8), nele é exemplificado sobre nomenclaturas, convenções, dentre outros.

Quanto a boas práticas de código, recomendo duas leituras:

  • O livro "Python Fluente", onde o autor discute boas práticas de codificação em Python, tratando abordagens idiomáticas, concisas e eficientes de programação com a linguagem.

  • O livro "Código Limpo"(Clean Code). Ele não é focado em uma linguagem em específico, mas trata a respeito de boas práticas de código no geral, pois o que muda de uma linguagem para outra são sintaxes e o modo de fazer determinadas coisas, mas o conceito em si permanece.

Qualquer dúvida estou por aqui.

Abraços e bons estudos!

Perfeito, Nádia! Vou anotar os livros e o guia de estilo aqui para leitura em tempo oportuno. A propósito, estou seguindo seu plano de estudo para a linguagem Python.

Grato pela atenção e um abraço.