>>> class A:
... def a(self):
... pass
... def b():
... pass
... @
staticmethod... def c():
... pass
... @
classmethod... def d():
... pass
...
>>> def f():
... pass
...
>>> type(A.a)
<type 'instancemethod'>
>>> type(A.b)
<type 'instancemethod'>
>>> type(A.c)
<type 'function'>
>>> type(A.d)
<type 'instancemethod'>
>>> type(f)
<type 'function'>
>>> dir(A.a)
['__call__', '__class__', '__cmp__', '__delattr__', '__doc__', '__get__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'im_class', 'im_func', 'im_self']
>>> type(A.a.im_func)
<type 'function'>
别太纠结于概念,这种东西只有看官方文档的时候才用得上,有时候交流得时候,经常把这个两个说混,也没有造成过什么混淆。。。。