English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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() 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() 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。
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
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.