2014-03-05 50 views
7

Pylint爲抽象類的子類生成此錯誤,即使這些子類本身沒有實例化,並且方法在具體實例中被重寫子類。爲什麼Pylint認爲我的抽象子類是具體的?我怎樣才能關閉這個警告,而不用在rc文件中完全禁用它並徹底禁用它?Pylint W0223:方法...在類中是抽象的...但未被覆蓋

+0

注意:並非完全相同的問題,但對於記錄,當在抽象類中引發'NotImplementedError'的方法在子類中未被覆蓋時,即使抽象上的@ abstractmethod裝飾器方法被評論。 –

回答

4

由於某種原因,pylint認爲該類不是抽象的(通過檢查引發NotImplementedError的方法來完成檢測)。在模塊的頂部添加一條註釋,如#pylint: disable=W0223(僅用於在本模塊中禁用)或類(僅在此類中),應該這樣做。

+2

好的,所以答案是pylint的檢測機制是有缺陷的,因爲它不考慮元類。我知道我可以在模塊級別禁用,但它看起來並不像它當前的形式有用的檢查。 – AdamC

相關問題