English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico do Python

Controle de fluxo do Python

Função do Python

Tipos de Dados do Python

Operação de arquivo do Python

Objetos e classes do Python

Data e hora do Python

Conhecimento avançado do Python

Manual de referência do Python

Método de uso de property() do Python e exemplo

Funções integradas do Python

A construção do property() retorna a propriedade do atributo.

A sintaxe do property() é:

property(fget=None, fset=None, fdel=None, doc=None)

Leitura recomendada: Python @property:como usá-lo e por que usá-lo?

Parâmetros do property()

property() aceita quatro parâmetros:

  • fget(opcional) -Função usada para obter o valor do atributo. O padrão é None

  • fset(opcional) -Função usada para configurar o valor do atributo. O padrão é None

  • fdel(opcional) -Função usada para deletar o valor do atributo. O padrão é None

  • doc(opcional) -Uma string que contém a documentação (docstring) do atributo. O padrão é None

Retorno do property()

property() retorna o atributo propriedade a partir do getter, setter e deleter fornecidos

  • Se não for fornecido um parâmetro, property() retornará um atributo básico que não contém getter, setter ou deleter

  • Se não for fornecidodoc,property() usa a docstring da função getter

Exemplo1:Usar getter, setter e deleter para criar atributo

class Person:
    def __init__(self, name):
        self._name = name
    def get_name(self):
        print('Obter nome:')
        return self._name
    def set_name(self, value):
        print('Defina o nome como: ' + value)
        self._name = value
    def del_name(self):
        print('Remover nome')
        del self._name
    # Usar get_name e set_name para configurar o atributo
    # e o método del_name()
    name = property(get_name, set_name, del_name, 'Name property')
p = Person('张三')
print(p.name)
p.name = '李四'
del p.name

Resultados de saída

Obter nome:
张三
Defina o nome como: 李四
Remover nome

Aqui,_nameUsada para armazenarPersonVariável privada do nome

Também configuramos:

  • get_name() é o método de obtenção do nome da pessoa

  • O método set_name() usado para configurar o nome da pessoa

  • O método del_name() é usado para deletar o nome da pessoa

Agora, configuramos um novo nome de atributo chamando o método property()

Como mostrado no programa, através da saída de impressão interna, a chamada interna p.name para get name() como getter, set name() como setter e del name() como deleter

Exemplo2:Usar decorador @property

Pode-se usar property()Decoradores do Python Pode-se usar @property para atribuir getter, setter e Deleter, em vez de usar.

class Person:
    def __init__(self, name):
        self._name = name
    @property
    def name(self):
        print('Obter nome:')
        return self._name
    @name.setter
    def name(self, value):
        print('Definir nome como: ' + value)
        self._name = value
    @name.deleter
    def name(self):
        print('Remover nome')
        del self._name
p = Person('王麻子')
print('Nome:', p.name)
p.name = '李二'
del p.name

Resultados de saída

Obter nome:
Nome: 王麻子
Definir nome como: 李二
Remover nome

Aqui, não usamos property(), mas sim o decorador @property.

Primeiro, especificamos que o método name() também éPersondo atributo. Pode-se completar essa operação usando o método getter mostrado no programa @property.

A seguir, usamos o nome do atributo para especificar o setter e o deleter.

Isso é feito usando os métodos @name.settersetter e @name.deleterDeleter.

Atenção, usamos o mesmo método name() com definições diferentes para definir getter, setter e deleter.

Agora, a qualquer momento em que usar p.name, ele internamente chama o getter, setter e Deleter apropriados, conforme mostrado na saída de impressão interna do método.

Funções integradas do Python