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'
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
Vous pouvez également intercepter l'exception AttributeError à l'aide d'un bloc try/sauf :
>>> try: >>> a.property >>> except AttributeError: >>> # Handle missing attribute
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
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!