PyCharm:为什么签名在这种情况下不匹配?

他们怎么

考虑以下代码示例:

class BaseExtractor(object, metaclass=abc.ABCMeta):

    @abc.abstractmethod
    def extract(self, interval, *args, **kwargs):
        raise NotImplementedError

class ChildExtractor(BaseExtractor):

    def extract(self, interval, variants, anchor, fixed_len=True, **kwargs):
        pass

为什么PyCharm告诉我ChildExtractor.extract()不匹配BaseExtractor.extract()

我开始认为我只是犯了一些非常愚蠢的错误...

编辑:

class ChildExtractor(BaseExtractor):

    def extract(self, interval, variants, anchor, *args, fixed_len=True, **kwargs):
        pass

这将导致相同的错误。

用户名

考虑以下用法BaseExtractor

def extractor_usage(extractor: BaseExtractor):
    extractor.extract(interval=10)

它正确使用BaseExtractor接口,但传递ChildExtractor给此方法将导致TypeError

该问题可以通过制作variantsanchor可选来解决,例如:

class ChildExtractor(BaseExtractor):

    def extract(self, interval, variants=None, anchor=None, *args, fixed_len=True, **kwargs):
        pass

extractor_usage(ChildExtractor())  # No TypeError here

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么==在这种情况下不返回true?

来自分类Dev

为什么z-index:-1在这种情况下不起作用?

来自分类Dev

为什么setDT在这种情况下不起作用?

来自分类Dev

为什么客户端在这种情况下不能取消引用指针?

来自分类Dev

为什么std :: function <boost :: any()>在这种情况下不起作用?

来自分类Dev

为什么两个同名变量在这种情况下不冲突?

来自分类Dev

为什么输出重定向在这种情况下不起作用?

来自分类Dev

为什么在这种情况下不允许使用setOnClickListener?

来自分类Dev

为什么<tr>的onclick在这种情况下不起作用?

来自分类Dev

为什么jQuery:not选择器属性在这种情况下不起作用?

来自分类Dev

为什么过滤器在这种情况下不起作用?

来自分类Dev

为什么this.health在这种情况下不起作用?

来自分类Dev

为什么在这种情况下不调用复制构造函数?

来自分类Dev

为什么“自动”在这种情况下不起作用?

来自分类Dev

为什么两个同名变量在这种情况下不冲突?

来自分类Dev

为什么客户端在这种情况下不能取消引用指针?

来自分类Dev

为什么在这种情况下不能使用隐式?

来自分类Dev

为什么z-index:-1在这种情况下不起作用?

来自分类Dev

为什么.toFixed(2)在这种情况下不起作用

来自分类Dev

为什么mediaPlayer类在这种情况下不起作用?

来自分类Dev

斯威夫特:为什么在这种情况下不加标签?

来自分类Dev

为什么getElementbyId在这种情况下不起作用?

来自分类Dev

为什么 SFINAE 在这种情况下不起作用?

来自分类Dev

为什么 Grails/Spring 事务行为在这种情况下不起作用?

来自分类Dev

为什么 setState 在这种情况下不起作用?

来自分类Dev

为什么 find() 方法在这种情况下不起作用?

来自分类Dev

为什么 array_unique 在这种情况下不起作用

来自分类Dev

为什么 std::void_t 在这种情况下不起作用?

来自分类Dev

为什么 perl 在这种情况下不保留 match 变量?

Related 相关文章

  1. 1

    为什么==在这种情况下不返回true?

  2. 2

    为什么z-index:-1在这种情况下不起作用?

  3. 3

    为什么setDT在这种情况下不起作用?

  4. 4

    为什么客户端在这种情况下不能取消引用指针?

  5. 5

    为什么std :: function <boost :: any()>在这种情况下不起作用?

  6. 6

    为什么两个同名变量在这种情况下不冲突?

  7. 7

    为什么输出重定向在这种情况下不起作用?

  8. 8

    为什么在这种情况下不允许使用setOnClickListener?

  9. 9

    为什么<tr>的onclick在这种情况下不起作用?

  10. 10

    为什么jQuery:not选择器属性在这种情况下不起作用?

  11. 11

    为什么过滤器在这种情况下不起作用?

  12. 12

    为什么this.health在这种情况下不起作用?

  13. 13

    为什么在这种情况下不调用复制构造函数?

  14. 14

    为什么“自动”在这种情况下不起作用?

  15. 15

    为什么两个同名变量在这种情况下不冲突?

  16. 16

    为什么客户端在这种情况下不能取消引用指针?

  17. 17

    为什么在这种情况下不能使用隐式?

  18. 18

    为什么z-index:-1在这种情况下不起作用?

  19. 19

    为什么.toFixed(2)在这种情况下不起作用

  20. 20

    为什么mediaPlayer类在这种情况下不起作用?

  21. 21

    斯威夫特:为什么在这种情况下不加标签?

  22. 22

    为什么getElementbyId在这种情况下不起作用?

  23. 23

    为什么 SFINAE 在这种情况下不起作用?

  24. 24

    为什么 Grails/Spring 事务行为在这种情况下不起作用?

  25. 25

    为什么 setState 在这种情况下不起作用?

  26. 26

    为什么 find() 方法在这种情况下不起作用?

  27. 27

    为什么 array_unique 在这种情况下不起作用

  28. 28

    为什么 std::void_t 在这种情况下不起作用?

  29. 29

    为什么 perl 在这种情况下不保留 match 变量?

热门标签

归档