语言参考中描述的python函数的描述符协议在哪里?

语言参考中描述的python函数的描述符协议在哪里?,python,python-3.x,methods,descriptor,python-descriptors,Python,Python 3.x,Methods,Descriptor,Python Descriptors,我偶然发现了一个很好的技巧,可以在Python中将绑定方法动态分配给类实例: class X: pass def f(self): pass x = X() x.f = f.__get__(x) 我想知道的是这个行为在引用中的指定位置。这是我找到的最接近的一个: 我想知道这个行为是否在语言引用的某个地方被指定了。 这似乎是一个足够重要的用例,需要文档来保证(即,不清楚HowTo中出现的内容是否展示了保证的语言特性或使用了实现细节,我认为,原则上,所有保证的功能都可以从规范中推导出来,而无

我偶然发现了一个很好的技巧,可以在Python中将绑定方法动态分配给类实例:

class X: pass
def f(self): pass

x = X()
x.f = f.__get__(x)
我想知道的是这个行为在引用中的指定位置。这是我找到的最接近的一个:

我想知道这个行为是否在语言引用的某个地方被指定了。
这似乎是一个足够重要的用例,需要文档来保证(即,不清楚HowTo中出现的内容是否展示了保证的语言特性或使用了实现细节,我认为,原则上,所有保证的功能都可以从规范中推导出来,而无需参考PEP).

您可能正在寻找`:

object.\uuuuu获取(self,instance,owner=None)
调用以获取所有者类的属性(类属性访问)或该类的实例的属性(实例属性访问)。可选的owner参数是owner类


您实际上是在调用
函数;它基本上是调用,这基本上只是绑定了一个函数和一个
self

你的代码不起作用。谢谢。我忘了放
x=x()
,感谢您提供了指向CPython实现的链接。不过,这也说明了我的观点,这是实现的一部分,但在引用中并不明确(据我所知)。我希望在引用中看到的是…这个方法应该返回计算的属性值或引发AttributeError异常,对于函数对象,计算的值是作为方法(或类似方法)绑定到实例的函数。我的意思是,你可以用它来开玩笑,但是,您真的希望多久将一个自由函数绑定到一个实例中,为什么?