0 votes

Existe-t-il d'autres Type en plus de la classe à appeler par hasattr

Pour le code :

class a(object):
    a='aaa'
b=a()
print hasattr(a,'a')
print hasattr(b,'a')

qui peut être appelé par hasattr sauf 'class somebody' ?

Merci !

1voto

Alex Martelli Points 330805

Vous pouvez appeler hasattr avec n'importe quel objet comme premier argument (et n'importe quelle chaîne de caractères comme second argument) : il renvoie simplement False si cet objet n'a pas d'attribut de ce nom ("avoir" un attribut inclut bien sûr la possibilité d'en hériter ou de le synthétiser ; hasattr(x,'y') est Vrai si et seulement si l'accès x.y ne lèverait pas d'exception -- c'est ainsi qu'il fonctionne en interne : il essaie de getattr et attrape l'exception le cas échéant).

0voto

Pedro Ghilardi Points 1064

Selon la documentation Python, vous devez passer un objet comme paramètre de la fonction hasttr().

hasattr(objet, nom) : Les arguments sont un objet et une chaîne de caractères. Le résultat est True si la chaîne est le nom d'un des attributs de l'objet, False sinon. (Ceci est implémenté en appelant getattr(objet, nom) et en voyant si cela lève une exception ou non).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X