Pas tout à fait, selon que l'on parle de la méthode de classe ou de la méthode d'instance de classe, Python ne nous crée pas les méthode de la même manière : les méthodes d'instances sont des méthodes liées ( bound method ), alors que celles de classes ne le sont pas. ( C'est ce qui correspond au self passé en premier argument de chacune des méthodes ).
>>> class A(object):
.........def func(self):
...............pass
...
>>> A.func
<unbound method A.func>
>>> a = A()
>>> a.func
<bound method A.func of <__main__.A object at 0xb775da6c>>
>>>
Cela signifie que la méthode est liée à une instance et qu'il n'est pas possible de l'utiliser de manière séparée de l'instance ( c'est le but de la propriété im_self ) :
>>> my_func= a.func
>>> my_func.im_self
<__main__.A object at 0xb775da6c>
>>> my_func.im_self == a
True
C'est pas explicite dans Python, et cela peut poser des problèmes difficile à comprendre au moment où l'on s'y retrouve confronté.
[^] # Re: arf
Posté par chimrod (site web personnel) . En réponse au message Accès à la liste des méthodes de l'intérieur d'une classe. Évalué à 3.
>>> class A(object):
.........def func(self):
...............pass
...
>>> A.func
<unbound method A.func>
>>> a = A()
>>> a.func
<bound method A.func of <__main__.A object at 0xb775da6c>>
>>>
Cela signifie que la méthode est liée à une instance et qu'il n'est pas possible de l'utiliser de manière séparée de l'instance ( c'est le but de la propriété im_self ) :
>>> my_func= a.func
>>> my_func.im_self
<__main__.A object at 0xb775da6c>
>>> my_func.im_self == a
True
C'est pas explicite dans Python, et cela peut poser des problèmes difficile à comprendre au moment où l'on s'y retrouve confronté.