亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PyCharm:為什么在這種情況下簽名不匹配?

PyCharm:為什么在這種情況下簽名不匹配?

SMILET 2022-07-12 09:51:43
考慮以下代碼示例:class BaseExtractor(object, metaclass=abc.ABCMeta):    @abc.abstractmethod    def extract(self, interval, *args, **kwargs):        raise NotImplementedErrorclass 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這會導致相同的錯誤。
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

考慮以下用法BaseExtractor:


def extractor_usage(extractor: BaseExtractor):

    extractor.extract(interval=10)

它正確使用BaseExtractor接口,但傳遞ChildExtractor給此方法會導致TypeError.


這個問題可以通過 makevariants和anchoroptional 來解決,例如:


class ChildExtractor(BaseExtractor):


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

        pass


extractor_usage(ChildExtractor())  # No TypeError here


查看完整回答
反對 回復 2022-07-12
  • 1 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號