問題タブ [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.
python - @property の定義
@property
具体的なクラスで使用してゲッターを定義する際に問題があります。Pythonコードは次のとおりです。
次に、コードをテストして、次のエラーを取得します。
v1
基本的には読み取り専用属性に設定するつもりです。
属性とそのゲッター関数に同じ名前を使用することに慣れていますが、クラスが抽象クラスから継承された場合、それはできないようです。
ゲッター関数に別の名前を使用することで回避策を見つけましv1
たget_v1
:
この問題のより良い回避策はありますか?
python - シングルトンをメタクラスとして実装しますが、抽象クラス用です
抽象クラスがあり、抽象クラスから継承するすべてのクラスにシングルトン パターンを実装したいと考えています。メタクラス属性の競合が発生するため、コードが機能しないことはわかっています。これを解決する方法はありますか?
python - ABC の計算コスト
私は過去に abc を使用していましたが、@abstractmethod を使用して純粋な仮想のようなメソッドを強制するために、それらを再度使用したいと思います。これは、ユーザーが頻繁に拡張する API への Python フロントエンドのコンテキストにあります。
スケールの信頼できる包括的なテストを開発するのは少し複雑すぎます.abcを常に黒魔術のクローズドボックスとして使用してきたため、抽象化と抽象化のチェックのコストがどこにあるのか、いつ発生する可能性が高いか、実際のコストがどのようなものになるか、何に合わせてスケーリングするか。
根底にある力学の十分に完全な情報をどこにも見つけることができなかったので、魔法がいつどこで発生し、どのようなコストで発生するかについての指針は非常に高く評価されます (インポート? インスタンス化? インスタンスが拡張された場合の二重浸漬コスト?)
ユース ケースに関する追加情報: 以前のユース ケース (私にとって) とは異なり、各ベース オブジェクトと abc のインスタンスの数が非常に限られており、オーバーヘッドが認識できないほど測定されていましたが、今回は何か (ノード内のノードツリー ビューを備えた DAG) は、インスタンス化してその場で何百回も拡張できます。また、仮想メソッドの数は、クラスごとに約 12 個まで増加する可能性があります。
継承は決して複数ではなく、一般的に非常に浅く、多くても 2 つまたは 3 つ深く、ほとんどの場合は 1 つだけです。
サードパーティのプラットフォームの制約により、Python 2.7。
c++ - 抽象基本クラスでコンストラクターを定義できますか?
純粋に仮想の抽象基本クラスである「インターフェイス」クラスを C++ で作成したいと考えています。
このインターフェイス クラスでコンストラクタを定義できますか? コンストラクターを純粋な仮想関数にすることはできませんが、インターフェイス クラスのコンストラクターを定義するにはどうすればよいでしょうか?
編集:そのようなインターフェイス クラスに仮想デストラクタが必要ですか?
perl - 子クラスは MooseX::Interface with MooseX::ABC (Abstract Base Class) を実装します
抽象基本クラスのすべての子クラスに強制的にインターフェイスを実装しようとしています。ABC に追加しようとするwith '<interface>'
と、必要なメソッドをすぐに実装し、sub <method> {}
インターフェイス メソッドごとに追加する必要があります。
問題を説明するには、
これを行う方法を知っている人はいますか?または、これを達成するために別のモジュールのセットを推奨できますか?
ありがとう
python - Python 2.7 と Python 3.5 の両方と互換性のある方法で abc.ABCMeta を使用する
abc.ABCMeta
をメタクラスとして持ち、Python 2.7 と Python 3.5 の両方と互換性のあるクラスを作成したいと考えています。これまで、2.7 または 3.5 でのみ成功しましたが、両方のバージョンで同時に成功したことはありません。誰か手を貸してくれませんか?
Python 2.7:
パイソン 3.5:
テスト
適切なバージョンの Python インタープリター (Python 2.7 -> 例 1、Python 3.5 -> 例 2) を使用して次のテストを実行すると、両方のシナリオで成功します。
問題
Python 3.5 を使用してテストを実行している間、期待される動作は発生しません (TypeError
インスタンス化中に は発生しませんSomeAbstractClass
)。
一方、Python 2.7 を使用してテストを実行すると、次のエラーが発生しSyntaxError
ます。
python - Python の静的メソッドのみのクラスとサブクラス - より良い設計パターンはありますか?
金融商品の価格を設定していますが、各金融商品オブジェクトにはプロパティとしてデイ カウンターが必要です。2 つのメソッドのそれぞれに異なる実装を持つ 4 種類のデイ カウンターがありyear_fraction
ますday_count
。金融商品のこのデイ カウンター プロパティは、他のクラスで価格設定の際に使用され、カーブを適切に割り引く方法を知るためなどに使用されます。ただし、デイ カウント メソッドはすべて静的であり、何らかの数式を適用するだけです。
そのため、オンラインで読んだすべてのことで、静的メソッドを使用せず、代わりにモジュールレベルの関数を使用するように指示されていたにもかかわらず、このようなものを実装せずに正しい DayCounter を適切に渡す方法がわかりませんでした
そのため、パラメーターとして商品が渡される特定の商品の価格設定エンジンで、必要に応じて商品のデイ カウンター プロパティを使用できます。
Pythonでより慣用的/スタイル的に受け入れられるものが欠けていますか、それとも静的メソッドのみのクラスの適切な使用のように思えますか?
例:
私は FxPricingEngine クラスを持っています。このクラスには__init__
、FxInstrument とそれに続くunderlying_instrument
プロパティを渡すメソッドがあります。次にValue
、価格設定エンジンの方法を使用するために、特定の日数カウンターで曲線を割り引く必要があります。正しい式を適用できるように渡すメソッドを持つYieldCurve
クラスがあります。実際、クラスが提供しているのは、独自の実装に論理的な編成を提供することだけです。discount
self.underlying_instrument.day_counter.year_fraction