簡體   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