.NETAPIドキュメントに関するPythonプログラマー向けのヒント
スクリプトインターフェイスドキュメントの現在のプレリリースは、基盤となる.NETおよびC#ソースから自動的に生成されています。したがって、ドキュメントには、Pythonプログラマーにはなじみのない式がいくつか含まれています。次の概要は、Pythonの観点からこれらの式を理解する方法に関するヒントを提供します。
インターフェイスは、インターフェイスを実装するクラスのインスタンスに、準備する必要のあるメンバー(メソッド、プロパティ)を通知するコントラクトです。 IronPythonでは、スーパークラスから継承することにより、1つのクラスに1つ以上の.NETインターフェースを実装できます。インターフェイスにメソッドが必要であるが、クラス定義で使用できない場合は、例外がスローされます。 (
DeviceImportFromSvn.py
例は、を実装するクラスを示していますImportReporter
インターフェース。).NETの各パラメーターと各メソッドは厳密に型指定されています。パラメーターのタイプは、パラメーター名の前に1つのスペース文字で区切られ、メソッドからの戻り値のタイプは、メソッド名の前に1つのスペース文字で区切られます。クラス(またはインターフェース)を定義するときに、サブクラスのインスタンスを使用できます。戻り値のないメソッドがマークされます
void
。メソッドをオーバーロードできます。その結果、同じ名前の複数のメソッドが1つのクラスに存在する可能性があります。ただし、パラメータの数またはタイプは異なっている必要があります。 IronPythonは、呼び出される最も適切なメソッドのオーバーロードを自動的に処理します。
データ型
int
-2,147,483,648から2,147,483,647までの整数に対応します。データ型
bool
Pythonタイプに対応しますbool
((True
とFalse
)。データ型
string
Pythonタイプに対応しますstr
またunicode
、IronPythonと同じです。The
IDictionary<object, object>
データ型は通常のPython辞書に対応しています。 IronPythonは、Pythonと.NETのデータ型を自動的に変換します。いつ
T
タイプはから継承されますIBaseObject<T>
、これは、このタイプが追加メンバー用の他のプラグインによって拡張できることを意味します。パラメータまたは戻り値としてのこの拡張タイプの実際の使用は、によってマークされます。IExtendedObject<T>
。The
IEnumerable<T>
へのインターフェースT
typeは、すべてのPythonシーケンス(ジェネレーター、リスト、タプルなど)を使用できることを意味します。T
タイプ値(またはサブクラス)。互換性のないオブジェクトのシーケンスを返し、実行時に例外をスローします。The
IList<T>
へのインターフェースT
typeは、typeの要素のみを含むことを保証する典型的なリストを識別しますT
(またはサブクラス)。互換性のないオブジェクトを追加しようとすると、実行時に例外がスローされます。The
params T[] name
タイプのパラメータのIDT
Pythonメカニズムに対応します*name
可変引数リストの場合。Pythonでは、列挙型(
enum
)言語構造として存在しません。その目的は、特定の目的、たとえば曜日などの定数値の正確な数を定義することです。 IronPythonからの.NET列挙型へのアクセスは、「Name.Member」を使用して機能します。OnlineChangeOption.Try
。Pythonで列挙型をエミュレートするためのさまざまなアプローチもあります。
たとえば、次を参照してください。 http://pypi.python.org/pypi/enum/
構文
T name
{ get; set; }
プロパティを定義しますname
名前としてそしてT
タイプとして。もしもset;
が欠落している場合、プロパティは読み取り専用です。 Pythonでは、それぞれの構成は@property
デコレータ。