Lorsqu'un attribut est introuvable, object.__getattr__
est appelée. Existe-t-il une manière équivalente d'intercepter des méthodes non définies?__getattr__ équivalent pour les méthodes
4
A
Répondre
8
Les méthodes sont également des attributs. __getattr__
fonctionne de la même pour eux:
class A(object):
def __getattr__(self, attr):
print attr
Ensuite, essayez:
>>> a = A()
>>> a.thing
thing
>>> a.thing()
thing
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable
9
Il n'y a pas de différence. Une méthode est également un attribut. (Si vous voulez que la méthode ait un argument "self" implicite, vous devrez faire un peu plus de travail pour "lier" la méthode).
0
vous ne retournez pas quoi que ce soit.
class A(object):
def __getattr__(self, attr):
return attr
devrait fonctionner
Questions connexes
- 1. Comportement asymétrique pour les classes __getattr__, newstyle vs oldstyle
- 2. Python: Permettre des méthodes non définies spécifiquement pour être appelé ala __getattr__
- 3. Existe-t-il un équivalent javascript de la méthode __getattr__ de python?
- 4. __getattr__ de Python en Javascript
- 5. Scala équivalent des méthodes d'extension de C#?
- 6. Python __getattribute__ (ou __getattr__) pour émuler php __call
- 7. Désactiver les méthodes d'instance de classe
- 8. Existe-t-il un équivalent C# de typeof pour les propriétés/méthodes/membres?
- 9. Équivalent multiplateforme pour les événements Windows
- 10. PHP fseek() équivalent pour les variables?
- 11. SQL équivalent à "using" pour les schémas?
- 12. MySQL, coalesce équivalent pour les valeurs vides?
- 13. Équivalent ISNULL pour les champs vides
- 14. Python getattr équivalent pour les dictionnaires?
- 15. C# équivalent de typeof pour les champs
- 16. Définitions de méthodes pour les méthodes contenues dans System.Xml.XMLReader
- 17. Noms de méthodes pour les méthodes d'opérateur en C#
- 18. Comment fonctionnent les méthodes de requête d'attribut?
- 19. Nlist équivalent pour Linux?
- 20. threading.local équivalent pour twisted.web?
- 21. Checkstyle équivalent pour JSP?
- 22. 'Amis' équivalent pour Java?
- 23. find_by_sql équivalent pour mongoïde?
- 24. /sharedtypes équivalent pour svcutil.exe?
- 25. "Unlocker" équivalent pour Vista64?
- 26. jconsole équivalent pour .Net?
- 27. Autotest équivalent pour PHP?
- 28. Beanshell équivalent pour .Net
- 29. HTTPLiveHeaders équivalent pour IE?
- 30. "ResizeEnd" équivalent pour usercontrols
+1. Une méthode est également un attribut. –
Deuxièmement, tout est un objet, peu importe que ce soit 'int',' str' ou 'function'. –