いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

IronPythonのメモ

かなり、便利なIronPython君。
まだちょっとしか触っていないのですが、.netの動作確認するのとかには
もってこいです。コンパイルの必要もないですしね。

ちょこっとしたメモです。

import clr

clrモジュールをインポートとすると、IronPythonが本来の力を
発揮し始めます。起動した直後、つまりclrモジュールをインポートしていない
状態では、普通のpythonとほぼ同じ状態となっています。
上記モジュールをインポートすると、ビルドイン関数やリストなどに
.net版のメソッドが追加されます。


でも、そのままだとまだ.netのクラスライブラリが使えないので
次に以下のコマンドを発行します。

import System as _s

これで、System名前空間がインポートされます。個人的には
別名をつけるのがすきなのですが、そのまま別名なしで直接アクセスしたい場合は
以下のようにします.

from System import *

これで、System名前空間の全てのものがpythonのデフォルトの名前空間にインポートされます。

  • .netクラスライブラリを使用する。

これも特に問題なしです。以下のようにそのまま使えます。

import clr
import System as _s
print _s.Environment.OSVersion

とやると、OSのバージョンが出力されます。当然print関数にて
呼ばれているのは、ToStringメソッドになります。


こんなのもオッケイ。

import System.IO as _io
w = _io.StringWriter()
w.WriteLine("hoge")
w.WriteLine("hehe")
w.Flush()
print w
import System.Threading as _th

def thread_start():
    for x in range(10):
        print x
        _th.Thread.Sleep(1000)

t1 = _th.Thread(_th.ThreadStart(thread_start))
t1.Start()
  • Pythonのモジュールを利用

IronPythonPythonモジュールを使用するには、sys.pathに
モジュールパスを通してあげなければなりません。

import sys
sys.path.append("pythonインストールディレクトリ/Lib")

これで、呼べるようになります。

import os
os.listdir(".")