私はプロジェクトのためにPythonを手に入れようとしています。私は、抽象クラスとクラスの使い方について少し混乱しています。 (私は非常に経験豊富なプログラマーではないので、この質問の基本レベルのために謝罪します。)私はJava/Ocamlのバックグラウンドから来ています。私がしようとしてきたことは次のとおりです。私は、グラフの実装を持つ Pythonの抽象化?
このようなclass AbstractGraph:
def method1(self):
raise NotImplementedError
...
class AbstractAdvanced:
def method2(self):
raise NotImplementedError
...
何かを見て、(いくつかのより多くの空想の方法とグラフ)とgraphadvanced:
class Graph(AbstractGraph):
def method1(self):
* actual code *
が今私の質問です:私は何かを行うことができますこのような?言い換えれば
class Advanced(AbstractAdvanced, AbstractGraph):
def method2(self):
*actual code, using the methods from AbstractGraph*
、どのように私は抽象的AbstractGraphの方法の面で先進のメソッドを定義することができ、その後、何とかグラフの実装と拡張の定義を使用して高度のインスタンスを取得するには、コンストラクタにグラフを渡しますか?
Ocamlに関して、私はAbstractAdvancedとAbstractGraphをモジュール型として扱おうとしていますが、私はPythonで少し遊んできましたが、これをどのように動作させるのかは分かりません。
は、書式設定を修正し、あなたがしているとき、あなたは 'code']タブをクリックし編集 – Shep
Pythonでは、通常このようなものは必要ありません。実際のコードを書くだけです。 – georg
私はそれを理解しているので、pythonは厳密なインターフェースとタイプチェックの概念を使用していません。 Java。ダックタイピングを通して、それは本当に意味をなさない。だからあなたはそれをやるだけです。 Couはisinstance()があなたのパラメータを要求することによってそれを強制することができますが、それは実際にあなたが使用していた静的型付けを実際には与えません。 Pythonは動的に型付けされた言語です。 – sleeplessnerd