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
+1. Une méthode est également un attribut. –
Deuxièmement, tout est un objet, peu importe que ce soit 'int',' str' ou 'function'. –