01:55
Python, C#, .NET Framework
Synapse内では各所でC#のクラスをIronPythonで継承していますが、コンストラクタはほとんど定義していませんでした。
今回たまたま引数つきのC#コンストラクタをIronPythonのコンストラクタから呼ぼうとし、
class Foo(CSClass): def __init__(self, arg): super(Foo, self).__init__(arg)
とか、
class Foo(CSClass): def __new__(cls, arg): return CSClass.__new__(arg)
と書いてみても引数の数の不一致エラーを吐きまくって成功しません。
書き方としては後者が正しいらしいのですが。オーバーロードでも問題が発生するようで、このへんはIronPythonもまだ成熟してないなあと思ってしまいます。
結局あれこれ試してもだめだったのでコンストラクタはあきらめてしまいました。書き方がわかってないとIDEの自動補完のありがたみが増します。Visual Studio 2005 Express EditionではIronPythonは組み込めないようなので、Standard Editionでも買ってくるかもしれません。
因みにSynapseは拡張をつなげるエディタを作っています。土曜の夜くらいに0.0.16αか0.1.0βを公開するつもりです。Plaggerよりはユーザフレンドリーに。

No Comments yet »
コメント RSS TrackBack URI
コメントをどうぞ