ironpython
PythonとIronPythonの違い
サーチ…
Pythonコードから.Netアセンブリを使用する
IronPythonでは、IronPythonコアと同じかそれより低いバージョンでコンパイルされた.netアセンブリにアクセスできます。
例:aa .netアセンブリとクラスのインポート
from System import Math
例:インポートされたクラスの使用:
from System import Math
print Math.Abs(-123)
組み込みclrモジュールを使用して、追加のアセンブリをロードすることもできます。
import clr
clr.AddReference('Sample') # Sample.dll inside of the working directory.
ほかの.netまたはpythonライブラリとして使用するだけです。
IronPythonは純粋なC#で書かれています
IronPythonは管理された.net(c#)コードを使用して完全に書かれています。ですから、 builtin Pythonのメソッドとライブラリ( next() 、 int()など)は.netで記述されています。
次の例は、異なるタイプのリスト(わずかな数)のlen()実装を示しています。
....
public static int len([NotNull]List/*!*/ list) {
return list.__len__();
}
public static int len([NotNull]PythonTuple/*!*/ tuple) {
return tuple.__len__();
}
public static int len([NotNull]PythonDictionary/*!*/ dict) {
return dict.__len__();
}
....
長さを数えるために他のタイプが必要な場合は、 Builtin.cs追加するだけで自動的に使用可能になります。
IronPythonでのジェネリックの使用
IronPythonでは、.netフレームワークの汎用クラスとメソッドを使用できます。ジェネリックスは、インデックスへのアクセスと同じ構文で使用できます。複数の型パラメータを渡す場合は、カンマで区切る必要があります。
l = Dictionary[int, str]()
そうすれば、キーはintegersだけを受け付け、値はstringなければならない辞書を作成しstring 。
サンプルの使用方法は次のようになります
from System.Collections.Generic import List
lst = List[str]()
lst.Add('Hello')
lst.Add('World')
for l in lst:
print
出力
こんにちは
世界
新しい項目を追加するときには、型チェックも実行されます:
lst = List[str]()
lst.Add(123)
トレースバック(直近の最後のコール):
ファイル "<stdin>"、1行目、
TypeError:予想されるstr、int
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow