繁体   English   中英

python方法包装器“包装”了什么

[英]What is 'wrapped' by a python method wrapper

我正在阅读python 3中有关OOP的博客文章 其中有:

如您所见,该函数的成员中列出了__get__方法,Python将其识别为方法包装器。 此方法应将open函数连接到door1实例,因此我们可以称它为单独传递实例。

我试图更直观地理解这一点。 在这种情况下,“包装”是什么?

method-wrapper对象包装了C函数。 它将一个实例(这里是在C结构中定义的一个function实例)和一个C函数绑定在一起,以便在调用它时,正确的实例信息将传递给C函数。

它与自定义类上的method对象和function的C API等效。 给定的一类Foo与函数barFoo().bar产生一个结合的方法,该方法结合在一起Foo()实例和Foo.bar功能,使调用时,就可以在该实例通过作为第一个参数(通常称为self )。

另请参见描述符协议 这就是定义__get__方法的方式以及如何调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM