繁体   English   中英

打字功能时如何实现鸭子打字?

[英]How do I implement Duck Typing when typing function?

我有一个功能:

def optimize_image(image) -> BytesIO:
    """
    Takes image and returns it's compressed version if necessary
    """
    pass

我如何将输入和输出作为实现某些方法的对象(例如open() )而不是指定某些对象类型(如 BytesIO)?

我发现为此目的创建一个抽象类是最好的解决方案。 像这样的东西:

from abc import ABCMeta, abstractmethod

class Openable():
    __metaclass__=ABCMeta

    @abstractmethod
    def open():
    """Open object"""

def optimize_image(image: Openable) -> Openable:
    """
    Takes image and returns it's compressed version if necessary
    """
    pass

暂无
暂无

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

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