Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida uso de property

Classe Bola: Crie uma classe que modele uma bola:

Atributos: Cor, circunferência, material

Métodos: trocaCor e mostraCor

class Bola:
  def __init__(self, cor, circunferencia, material):
    self.__cor = cor
    self.__circunferencia = circunferencia
    self.__material = material

  def mostra_cor(self):
    print (self.__cor)

esse exemplo necessita do uso do setter/propety?

1 resposta
solução!

Bom dia, Marcos! Tudo bem contigo?

Analisando o exemplo da classe Bola que você criou, percebemos que a mesma possui 03 atributos:

  • Cor.
  • Circunferência.
  • Material.

Mediante a definição destes atributos, o uso dos métodos de acesso (anotado com property) e atribuição de valor (anotado com setter) aos atributos pode ser avaliado face à necessidade da sua aplicação.

Por exemplo, caso seu programa precise exibir o valor de algum desses atributos, é interessante adicionar o método de acesso (anotado com property) pelos seguintes motivos (dentre outros):

  • É uma boa prática.
  • É uma convenção da linguagem.

O mesmo valore para o método de atribuição de valor (anotado com setter). Imagine por exemplo que seja possível alterar a circunferência da bola e, quando o usuário repassar o novo valor da circunferência, você queira validar se:

  • O valor é maior do que 0.
  • O novo valor é diferente do anterior/atual. -Desta forma, estas validações poderiam ser feitas neste método.

Em suma, apesar de o Python não impedir o acesso e atribuição de valor aos atributos sem o uso destes métodos - como é o caso do Java, por exemplo, que possui maior rigidez quanto à implementação dos métodos getters e setters -, é interessante implementá-los quando uma das necessidades acima se manifestar.

Espero ter contribuído um pouquinho com seu aprendizado.

Abraço e bons estudos!