【问题标题】:types.MethodType vs functools.partialtypes.MethodType vs functools.partial
【发布时间】:2011-10-08 23:38:23
【问题描述】:

这是我的另一个问题 (python closure + oop) 的延续。在回答这个问题时,Winston Ewert 建议我使用 functools.partial 而不是 types.MethodType

所以现在我的问题是:两者之间有什么区别?为什么functool方式被认为更好?

ps。我已经设法使用 functools.partial 进行关闭,感觉确实很酷。 :-)

【问题讨论】:

    标签: python functional-programming


    【解决方案1】:

    从实际的角度来看,并没有太大的区别。 Partial 将使用任意数量的参数(在本例中为 1); instancemethod 会将 self 实例(无论是什么)传递给包装函数;他们在做同样的事情!

    不同之处在于它们在某种程度上记录了自己;在您的链接问题中; closure 可调用不是任何方法;它是一个常规函数,由A的方法返回;碰巧主体将B 的实例视为第一个参数;但这还不足以让它成为 B 的“方法”。

    所以这只是风格问题。你正在做的事情看起来更像functools.partial,所以你应该使用它,即使你可以用types.MethodType达到同样的效果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      相关资源
      最近更新 更多