Na programação orientada a objetos, cada atributo de uma classe pode ter três métodos básicos:
No entanto, a vida não é tão fácil quanto o exemplo acima. Como podemos lidar com a entrada errada como Yang._score = -10ou Yang._score = 99999?
Uma boa ideia é escrever uma função setter self._scorepara verificar o valor de entrada.
Parece bom, mas ainda podemos definir um valor inválido diretamente:
Se usarmos a set_score() função, a validade do valor será verificada. Mas se esquecermos de usá-lo e ainda definirmos os valores diretamente, nenhuma validação pode ser garantida.
Portanto, ainda não podemos garantir totalmente que o valor de self._scoreé sempre válido. Sem mencionar que definir um valor por um método não é tão conveniente quanto defini-lo diretamente. É aqui que o decorador da propriedade vem para resgatar.
Vamos modificar a Studentclasse assim:
Conforme o código acima mostrado, após usar o @propertydecorador, podemos definir o valor diretamente e garantir a validade dele. O decorador de propriedade é um mecanismo muito útil e amplamente usado em classes Python. Isso nos ajuda a chamar os métodos getter, setter e deleter diretamente pelo atributo.
Um modelo comum para usar o decorador de propriedade é:
Observação: os nomes dos métodos getter, setter e deleter devem ser iguais. A melhor opção é usar o nome do atributo.
A propriedade é apenas um decorador embutido em Python. Portanto, como outros decoradores, podemos usá-lo de outra maneira:
A property(fget=None,fset=None,fdel=None,doc=None)função possui quatro parâmetros:
Como sabemos, existem três métodos (getter, setter e deleter) que podemos definir pelo decorador da propriedade. Se um dos três métodos não for definido, não podemos usar este método. Portanto, podemos usar habilmente o decorador de propriedade para definir um atributo somente leitura. Por exemplo:
Conforme mostrado no exemplo acima, não definimos o método setter de score, portanto, scorenão pode ser definido. Em outras palavras, é um atributo somente leitura. Este é um cenário de uso importante do decorador de propriedade.
O decorador de propriedade é uma ferramenta poderosa e amplamente usada em classes Python. Ele nos permite escrever um código conciso, garantindo as verificações necessárias nos parâmetros, de modo que a possibilidade de erros seja reduzida.
Obrigado pela leitura. Mais tutoriais Python:
The Ultimate Python Tutorial (continue atualizando)
Quando você faz uma solicitação para facebook.com, seu computador procura o nome de domínio para traduzir esse nome de domínio em um endereço IP para que seu computador possa fazer essa conexão.
Você deve ter ouvido falar sobre todos os novos plug-ins poderosos do ChatGPT, como navegador, intérprete de código, etc. Mas há um problema, o acesso aos plug-ins é limitado a uma lista de espera e, portanto, muitos não têm acesso a ela.
A coceira na minha mão aumentou enquanto eu negociava com o livreiro local por mais um livro. Este livro, como o resto que comprei recentemente, encontraria seu trono na minha pilha 'To Be Read' (TBR); e ainda assim, eu comprei.
Quantas vezes você jogou fora uma garrafa de plástico, uma jarra de vidro, uma lata de alumínio ou uma embalagem de energia verde sem pensar duas vezes? Quantas vezes você desejou receber algo em troca de reciclá-los? Se você for como a maioria das pessoas, a resposta provavelmente é muitas vezes. A reciclagem é muitas vezes vista como um aborrecimento, uma tarefa árdua ou um dever que não traz nenhum benefício imediato ou tangível.
No mundo interconectado de hoje, a ameaça de ataques cibernéticos é mais prevalente do que nunca. Criminosos cibernéticos e agentes de estado-nação estão constantemente buscando explorar vulnerabilidades e roubar dados valiosos, representando um risco significativo para organizações de todos os tamanhos.
Introdução:Bem-vindos, corajosos leitores, a uma jornada que nos levará às profundezas mais sombrias do nosso planeta. Neste blog, mergulhamos no mundo enigmático da Fossa das Marianas, revelando seus segredos ocultos e revelando as verdades arrepiantes que se escondem sob sua superfície.