2010-10-04 7 views

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

+1. Une méthode est également un attribut. –

+0

Deuxièmement, tout est un objet, peu importe que ce soit 'int',' str' ou 'function'. –

0

vous ne retournez pas quoi que ce soit.

class A(object): 

    def __getattr__(self, attr): 
    return attr 

devrait fonctionner

Questions connexes