Maison > développement back-end > Tutoriel Python > Comment accéder aux attributs sans exception en Python ?

Comment accéder aux attributs sans exception en Python ?

Susan Sarandon
Libérer: 2024-11-10 13:35:02
original
920 Les gens l'ont consulté

How to Access Attributes without Exceptions in Python?

Accès aux attributs sans exceptions

Lorsque vous travaillez avec des objets, vous pouvez rencontrer des scénarios dans lesquels vous devez déterminer si un attribut existe avant de l'utiliser. Prenons l'exemple suivant :

>>> a = SomeClass()
>>> a.property
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'
Copier après la connexion

Pour éviter de telles erreurs, vous pouvez utiliser la fonction hasattr().

Utilisation de hasattr() :

hasattr() accepte deux arguments : un objet et un nom d'attribut. Il renvoie True si l'objet a l'attribut spécifié et False sinon.

>>> if hasattr(a, 'property'):
>>>     a.property
Copier après la connexion

Vous pouvez également intercepter l'exception AttributeError à l'aide d'un bloc try/sauf :

>>> try:
>>>     a.property
>>> except AttributeError:
>>>     # Handle missing attribute
Copier après la connexion

Approche pythonique :

En Python, il est courant de demander pardon plutôt que la permission. Cela signifie tenter d’accéder à la propriété et gérer toutes les exceptions qui pourraient survenir. Cette approche peut souvent être plus concise et efficace :

>>> a.property
Copier après la connexion

Considérations relatives aux performances :

Si vous vous attendez à ce que la propriété soit présente la plupart du temps, accédez-y directement peut être plus rapide que d'utiliser hasattr(). Cependant, si la propriété est susceptible d'être manquante fréquemment, hasattr() sera généralement plus efficace que la gestion répétée des exceptions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal