Propriedade de classe em Python
Python é uma linguagem de programação orientada a objetos que tem quase tudo baseado em um objeto com propriedades e métodos. Uma classe é como um fabricante de objetos ou um projeto para a criação de objetos. A propriedade em uma classe é um elemento ou recurso que caracteriza as classes. Além disso, em Python, classes são conjuntos de vários objetos, e uma instância de uma classe é um objeto particular que pertence diretamente a apenas uma classe.
Este artigo apresentará o decorador de property
do Python. É fácil usar as propriedades em Python usando os métodos setters
e getters
em programação orientada a objetos. A linguagem de programação Python usa um decorador de property
embutido que usa os métodos getter e setters, tornando o fluxo de código muito mais fácil na Programação Orientada a Objetos. Você inicia uma propriedade chamando a função integrada property
, passando três métodos: getter
, setter
e deleter
. É considerado mais avançado e eficiente do que o estilo procedural de programação.
Uma propriedade é um membro de classe intermediário entre um campo e um método. A função property()
usa as funções setter, getter e deleter.
Propriedade de classe em Python
Criamos a classe Animal
neste bloco de código e adicionamos um setter
e getter
para esta classe. Na função setter
, estamos definindo o nome do Animal
, e em getter
estamos recebendo o nome que definimos a partir do método getter. Em seguida, criamos o objeto Animal. Neste objeto, passamos o nome do animal como Cachorro. Além disso, o nome do animal foi impresso a partir da função usando a função getter value()
. Além disso, na classe Animal
, o método construtor que define o valor de acordo com o objeto de classe passado, escreve o decorador @property
para fazer uma propriedade de classe.
class Animal:
def __init__(self, Name):
self.Name = Name
@property
def value(self):
return self.Name
animalObject = Animal("Dog")
print(animalObject.value)
Resultado:
Dog
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn