0

おそらく簡単な解決策があると確信していますが、とにかく問題は次のとおりです。たとえばAとの 2 つのクラスがありB、どちらもデータフレームのような属性を持っています。これらの属性はデータフレーム クラスのインスタンスであり、それを呼び出しますC。独自の方法があります。これらの属性を操作できるメソッドを持つ「インターフェイスのような」クラスを定義したいと思います(つまり、とDの属性であるデータフレームを操作します)。AB

わかりやすくするために編集します。以下に続くものでは、 letabbe は class のデータフレーム (つまりインスタンス)Cです。のメソッドがおよびCで利用できるようにします。ab

より明確に言うと、属性、...、を持つ の属性aのようなデータフレームであるとします。はデータフレームのようなものなので、 etc を呼び出し て、inの内容にアクセスできます。もちろんの属性なので、実際に呼び出している..などであり、クラスから独自のメソッドを持っているので、問題なく呼び出すことができます。とにかく。ここで、との両方がアクセスできる、 クラス のメソッドとして実装された、 またはのコンテンツに対して、一貫した方法で変換を行いたいとします。クラスのメンバーを次のように呼び出すことができるようにしたいという考えです:ASeries1Seriesnaa.Series1, a.Series2, ...Series1Series2aaAA.a.Series1A.a.Series2aCA.a.Series1.methodfromclassC()a.Seriesjb.SeriesjDABAA.a.Seriesj.transformseries(). 私が遭遇する問題Seriesjは、独自のメソッド ( class から継承C) がありtransformseries()、それらの 1 つではないことです。

これはおそらく少し複雑に思えますが、最終的にデータフレーム属性の状態を変更するさまざまなメソッドへの複数の呼び出しを連鎖させることができる という考えDです。A.a.Series2.transform1().transform2().transformj()B.b.Seriesj.transform6().transform3()A.aB.b

4

1 に答える 1

1

に新しいメソッドを「注入」することを検討しましたSeriesnか? Python では、次のようにクラスにメソッドを動的に追加できます。

setattr(MyClass, 'new_method', lambda self: 'return value')

以前にインスタンス化されたオブジェクトでも機能します。そのため、PandasSeriesDataframeクラスにカスタム メソッドを追加できます。

于 2013-04-23T21:17:52.203 に答える