所有函数对象绑定了实例对象就变成方法对象?是的。
在 Python 中,任何函数对象一旦被绑定到某个实例,就会被包装成一个 “绑定方法对象”(method)。
绑定方式有两种:
自动绑定(属性查找):
class C:
def foo(self): pass
c = C()
m = c.foo # 自动绑定,m 得到 <bound method C.foo of <C object ...>>
手动绑定(types.MethodType 或描述符)
import types
def bar(self): pass
c.bar = types.MethodType(bar, c) # 手动绑定
无论哪种方式,结果都是:
函数对象 → 绑定方法对象
调用时会把 绑定的实例 作为第一个实参 self 传进去。