2011-10-08 53 views
2

這是我的另一個問題(python closure + oop)的延續。在回答這個問題時,Winston Ewert建議我使用functools.partial而不是types.MethodTypetypes.MethodType vs functools.partial

所以現在我的問題是:兩者有什麼區別?爲什麼functool方式更好?

ps。我已經設法使用functools.partial來關閉它,它確實感覺很酷。 :-)

回答

3

從實際的角度來看,沒有太多的區別。部分將咖喱任何數量的參數(在這種情況下,1);一個實例方法會將自實例(無論發生什麼)傳遞給包裝函數;他們正在做同樣的事情!

不同之處在於它們有點文件自己;在你的鏈接問題中; callable不是任何東西的一種方法;它是一個常規函數,通過A的方法返回;碰巧身體看到一個B的實例作爲第一個參數;但這還不足以使它成爲B的「方法」。

所以這只是一個風格問題。你正在做的東西看起來更像functools.partial,所以你應該使用它,即使你可以達到同樣的效果types.MethodType

相關問題