問題タブ [abc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
64 参照

python - 抽象基本クラスと実装を区別する

サブクラスの自己登録を提供するメタクラスを開発しているときに (このアイデアに多少似ています)、次の問題に遭遇しました。

抽象基本クラスまたはその実装のいずれかである可能性のあるクラスが与えられた場合、それがどちらであるかをどのように区別すればよいでしょうか?

0 投票する
1 に答える
1408 参照

python - セッターの継承、python抽象クラスのゲッターの上書き

すべてのサブクラスで使用される単一のメソッドを持つ基本クラスに属性があるとしますがsetter、すべてのサブクラスで異なるgetterメソッドを使用します。理想的には、setterメソッドのコードを基本クラスで 1 回だけ記述します。getterさらに、完全なメソッドがないため、基本クラスを抽象化する必要があります。これを行う方法はありますか?

素朴に、私はそれが次のようになるべきだと思います:

しかし、upper = uppercase()で失敗しCan't instantiate abstract class uppercase with abstract methods strます。

@abc.abstractpropertyin クラス_mystring@propertyに変更するとupper = uppercase()動作しますが、 も動作しupper = _mystring()ます。これは望ましくありません。

私は何が欠けていますか?

ありがとう!

0 投票する
1 に答える
1163 参照

python - Python collections.MappingView

私は非常に優れたコレクション ライブラリと、より具体的な抽象基本クラス (ABC) を調べていました。私が理解できなかったのは、MappingView です。

  • その用途は何ですか?Sized に対する利点は何ですか? おそらく例ですか?
  • ドキュメンテーションによると、その基本クラスは Sized ですが、一方でlen mixin があります...では、 len を実装する必要がありますか?

ドキュメントについては、コレクションを参照してください

0 投票する
1 に答える
78 参照

python - 抽象基本クラスを使用して、dict のすべての (またはほとんどの) プロパティを持つ Python dict を作成することは可能ですか?

組み込みオブジェクトの一連のプロパティを提供する抽象基本クラス (ABC) の概念についてはよく知っていますが、それらを扱った経験はまったくありません。MappingABC と、それを継承する MutableMapping があることがわかりますが、メソッドが表示されません(.fromkeys()頭の中で唯一欠けているものです)。

純粋に ABC だけで辞書を作成することはできますか? それはどのように見えるでしょうか?それは、サブクラス化とほぼ同じことになりdictますか? そうすることで何かメリットがあるのでしょうか?ユースケースは何ですか?

0 投票する
5 に答える
20407 参照

python - Python で抽象基本クラスを使用して dict を実装するにはどうすればよいですか?

抽象基底クラス MutableMapping を使用して Python でマッピングを実装しようとしましたが、インスタンス化でエラーが発生しました。Abstract Base Classesdictを使用して、できるだけ多くの方法で組み込みクラスをエミュレートするこの辞書の作業バージョンを作成するにはどうすればよいですか?

良い答えは、特にサブクラス化なしで、これを機能させる方法を示しますdict私がよく知っている概念)。

0 投票する
2 に答える
486 参照

python - Python で抽象基本クラスを使用するには?

このチュートリアルに従って、Python で抽象基本クラスを使用しようとしています。そこで、次の 2 つのファイルを作成しました。

base.py :

implementation.py :

実行中は問題なく動作しますが、別のモジュールとしてpython implementation.py使用したいと考えています。implementation.pyだから私はコマンドラインに入り、次のようにします:

ここで何が間違っていますか?どうすればこれを機能させることができますか? すべてのヒントは大歓迎です!

0 投票する
6 に答える
18043 参照

python - numpy dtype が整数かどうかを確認するにはどうすればよいですか?

numpy dtype が整数かどうかを確認するにはどうすればよいですか? 私は試した:

しかし、それは与えFalseます。


更新: True.

0 投票する
1 に答える
5220 参照

python - Python の特定の引数を持つ抽象メソッド

abc パッケージで抽象クラスを実装します。以下のプログラムは問題ありません。

抽象には引数がありましたが、クラスの「MyMethod」の実装にはMyMethod引数がなかったために失敗させる方法はありますか? そのため、インターフェイス クラスのメソッドだけでなく、これらのメソッドの引数も指定したいと考えています。aDerivativeBase

0 投票する
1 に答える
230 参照

python - ダックタイピング可能なクラス、ABC、継承、__new__

とりわけ、データ ソースを使用するテスト システムを作成しています。実行中は多数の計測器を読み取りますが、バックエンドのテストと開発のために、ファイルを読み取るか、乱数を返すようにしたいと考えています。将来的には、まだ動作が不明な新しいデータ ソースを作成する必要があることはわかっています。私はシステムをセットアップして、新しい部門に移ることができるようにしようとしていますが、戻ってサポートする必要はありません。そのため、Pythonic のようになり、サプライズをできるだけ少なくしたいと考えています。主な要件は、ソースに対して一貫した API を使用することであり、ここでは ABC が当然の選択のようです。継承元の基本クラスに価値のあるチャンクを含めるには、ソース間に十分な共通点がありません。

何をすべきかを選択する大きなソース モジュールは必要ありません。動作する古いソースをそのままにしておくことができるように、選択可能な小さなスタンドアロン ソースが必要です。問題は、パラメーターで使用するソースを選択できるようにしたいということです。これにより、同じテスト スクリプトを実行してソースを簡単に切り替えることができます。どうやって出会ったのか正確には忘れてしまいまし__new__たが、それは明らかではなく、他の人もほとんど聞いたことがありませんでした。できます。しかし、私がやろうとしていることを行うための明白な、または Pythonic の方法はありますか? 同僚にとってより使い慣れた方法はありますか? 私は現在、メタプログラミングの快適さのレベルよりもわずかに高いレベルで作業していることを指摘しておく必要があります。

0 投票する
1 に答える
470 参照

python - 組み込み型の仮想サブクラスになることは可能ですか?

ユーザー定義型をPythonの組み込み型の仮想サブクラスにすることは可能ですか? クラスを のサブクラスと見なしたいのですがint、次のように直接継承したくありません。

それ以来、私が望むかどうかにかかわらず、私のクラスは事実上不変になります。たとえば、__iadd__andのようなメソッドを使用できなくなるため、それ自体を変更する方法がありません__isub__intから継承することもできnumbers.Integralますが、誰かが呼び出すとisinstance(myIntObj, int)issubclass(MyInt, int)答えは になりますFalse。ABCMeta のメタクラスを持つクラスは、このメソッドregisterを使用してクラスを実際には継承しない仮想ベースクラスとして登録できることを理解しています。組み込み型でこれを行う方法はありますか? 何かのようなもの:

私は(Pythonのドキュメントと一般的にオンラインの両方で)見回しましたが、探しているものに近いものはまだ見つかりませんでした。私が求めているのは完全に不可能ですか?