美文网首页
偏方法partialmethod

偏方法partialmethod

作者: 虚白无类 | 来源:发表于2019-05-10 10:33 被阅读0次

对于python偏函数partial理解运用起来比较简单,就是对原函数某些参数设置默认值,生成一个新函数。而如果对于类方法,因为第一个参数是self,使用partial就会报错了。 对此,python3.4新引入了 partialmethod, 下面是官网实例。

>>> class Cell(object):
...     def __init__(self):
...         self._alive = False
...     @property
...     def alive(self):
...         return self._alive
...     def set_state(self, state):
...         self._alive = bool(state)
...     set_alive = partialmethod(set_state, True)
...     set_dead = partialmethod(set_state, False)
...
>>> c = Cell()
>>> c.alive
False
>>> c.set_alive()
>>> c.alive
True

简单的说,在类中,不管是普通方法,staticmethodclassmethod,还是abstractmethod,都可以当作是partial一样使用,返回的也是callablefunctools.partial对象。

不过在类外使用的话,返回的是partialmethod对象,是不能直接调用的。
PS:总觉得官网说明不太准确,因为看类中普通方法和staticmethod都是有__get__属性的,都是descriptor
参考:

相关文章

网友评论

      本文标题:偏方法partialmethod

      本文链接:https://www.haomeiwen.com/subject/eccooqtx.html