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

Tutoriel de base en Python

Contrôle de flux en Python

Fonction en Python

Types de données en Python

Opérations sur les fichiers en Python

Objets et classes en Python

Dates et heures en Python

Connaissances avancées en Python

Manuel de référence Python

Utilisation et exemples de la méthode property() en Python

Fonctions intégrées de Python

property() construit et retourne une propriété property.

La syntaxe de property() est :

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

Lecture recommandée : Python @property : comment l'utiliser et pourquoi ?

property()参数

property() prend quatre paramètres :

  • fget(optionnel) -Fonction utilisée pour récupérer la valeur de l'attribut. Par défaut, None.

  • fset(optionnel) -Fonction utilisée pour définir la valeur de l'attribut. Par défaut, None.

  • fdel(optionnel) -Fonction utilisée pour supprimer la valeur de l'attribut. Par défaut, None.

  • doc(optionnel) -Une chaîne contenant la documentation de l'attribut (docstring). Par défaut, None.

property()返回值

property() retourne une propriété à partir des getter, setter et deleter fournis.

  • Si aucun paramètre n'est fourni, property() retourne une propriété de base, qui ne contient pas de getter, setter ou deleter.

  • Si non fournidoc,property()则使用getter函数的docstring。

Exemple1:使用getter,setter和deleter创建属性

class Person:
    def __init__(self, name):
        self._name = name
    def get_name(self):
        print('Obtenir le nom :')
        return self._name
    def set_name(self, value):
        print('Le nom sera défini sur : ' + value)
        self._name = value
    def del_name(self):
        print('Supprimer le nom')
        del self._name
    # Utilisation de get_name et set_name pour définir l'attribut
    # et la méthode del_name
    name = property(get_name, set_name, del_name, 'Name property')
p = Person('张三')
print(p.name)
p.name = '李四'
del p.name

Résultat de la sortie

Obtenir le nom :
张三
Le nom est défini sur : 李四
Supprimer le nom

Ici,_nameUtilisé pour stockerPersonVariable privée du nom

Nous avons également configuré :

  • get_name() est la méthode de récupération du nom de la personne

  • La méthode set_name() utilisée pour définir le nom de la personne par le setter

  • La méthode del_name() est utilisée pour supprimer le nom de la personne.

Maintenant, nous appelons la méthode property() pour définir un nouveau nom d'attribut.

Comme indiqué dans le programme, l'appel interne de p.name utilise get name() en tant que getter, set name() en tant que setter et del name() en tant que deleter

Exemple2:Utiliser le décorateur @property

property() peut être utiliséDécorateurs de Python Utiliser @property pour allouer getter, setter et Deleter, au lieu d'utiliser.

class Person:
    def __init__(self, name):
        self._name = name
    @property
    def name(self):
        print('Obtenir le nom :')
        return self._name
    @name.setter
    def name(self, value):
        print('Définir le nom comme : ') + value)
        self._name = value
    @name.deleter
    def name(self):
        print('Supprimer le nom')
        del self._name
p = Person('王麻子')
print('Le nom est:', p.name)
p.name = '李二'
del p.name

Résultat de la sortie

Obtenir le nom :
Le nom est: 王麻子
Définir le nom comme : 李二
Supprimer le nom

Ici, nous n'utilisons pas property(), mais @property le décorateur.

Tout d'abord, nous spécifions que la méthode name() est égalementPersonde l'attribut. Vous pouvez effectuer cette opération en utilisant la méthode getter indiquée dans le programme @property.

Ensuite, nous utilisons le nom de l'attribut pour spécifier le setter et le deleter.

C'est réalisé en utilisant les méthodes @name.settersetter et @name.deleterDeleter.

Notez que nous avons utilisé la même méthode name() avec des définitions différentes pour définir getter, setter et deleter.

Maintenant, à chaque fois que vous utilisez p.name, il appelle internement le getter, setter et Deleter appropriés, comme le montre la sortie d'impression affichée dans la méthode.

Fonctions intégrées de Python