次の表は、Python全体で使用される様々な抽象基底クラスを示しています。しかし、私はちょっと混乱しています(この文脈で)python抽象基底クラス、mixinと抽象メソッドの違い
Abstract Methods
列とMixin Methods
列の違いは何ですか? 1つはオプションで実装され、もう1つは実装されないか?
私はそれを精査してきました。私の "理論"のすべてが正しくないようです。抽象メソッドの列に
次の表は、Python全体で使用される様々な抽象基底クラスを示しています。しかし、私はちょっと混乱しています(この文脈で)python抽象基底クラス、mixinと抽象メソッドの違い
Abstract Methods
列とMixin Methods
列の違いは何ですか? 1つはオプションで実装され、もう1つは実装されないか?
私はそれを精査してきました。私の "理論"のすべてが正しくないようです。抽象メソッドの列に
何でも、あなたは自分自身を実装する必要があります。 ABCは、Mixin Methods列のメソッドの既定の実装を提供します。作成するメソッドの観点から実装されています。
抽象メソッドは、このABCから継承するときに定義する必要があるメソッドです。
Mixin列には後で使用できるメソッドがリストされていますが、object
ではなく、このABCから継承して自由に取得できます。 __getitem__
を定義した場合は、後でたとえば__iter__
を自動的に使用することができます。
これらのクラスを継承するもう1つの利点は、issubclass(your_class, any_ABC)
であり、インスタンスがisinstance(your_object, any_ABC)
であるため、後で誰でもクラスが意図されていたことを見ることができるということです。しかし、これはあなたが投稿したテーブルの後にチュートリアルで書かれています。
* "抽象メソッド" *:提供する必要があります。 * "Mixin Methods" *:それからあなたが得ます。 – jonrsharpe