2016-12-21 6 views
0

Iは抽象クラスと第3のレベル具体的なクラスの2つのレベルの必要:このコードはQuadの宣言に対してTypeError: Cannot create a consistent method resolution生成2レベル抽象クラス階層「一貫した方法分解能」エラーなし

from abc import ABC 

class Shape(ABC): 
... 

class Quad(ABC, Shape): 
... 

class Square(Quadrilateral) 
... 

を。問題は多重継承のあいまいであることに気付きました。 Quadは、ABCまたはShapeから直接特定の関数を引き出すかどうかわかりませんが、どうすれば修正できますか?私はをQuadの宣言から落とすことはできません。なぜならそれはもはや抽象ではないからです。

+0

「ABC」はどこから来たのですか?それは 'abc.ABC'ですか?あなたは[mcve]を与えることができますか? – jonrsharpe

+0

抽象クラスを作成する標準的なPythonの方法です: from abc import ABC –

+0

*質問に*を入れてください。 [編集]し、あまり抽象的な(そしてより内部的に一貫した)例を挙げてください。 – jonrsharpe

答えて

0

明らかに、親クラスの順序をQuadに戻すだけで問題は解決されます。私は根本的な理論についてはまだ不明ですが(推論することはできますが)、少なくとも私のコードは実行中です。

クラスQuad(Shape、ABC)

関連する問題