C#からPythonスクリプトを実行する
C#からPythonのスクリプトを実行する例があったので試してみた。
IronPython.dllとMicrosoft.Scripting.dllとをソースのあるフォルダーにコピーして
csc /reference:IronPython.dll,Microsoft.Scripting.dll .\PythonCall.cs
でコンパイルできた。
どうも参照するDLLはカンマ区切りで列挙できるようだ。
◎PythonCall.cs
using IronPython.Hosting;
using System;
namespace SelfCSharp.Chap11
{
class PythonCall
{
static void Main(string[] args)
{
var py = Python.CreateRuntime();
dynamic script = py.UseFile("myClass.py");
dynamic clazz = script.MyClass();
Console.WriteLine(clazz.greet("山田"));
//py.UseFile("Chap11/hello.py");
}
}
}
◎myClass.py
class MyClass:
def greet(self, name):
return "こんにちは、" + name + "さん!"
「C#からPythonを呼びだせると、どのような利点があるのか」はまだ理解できていない。また「今さらPython2系なの?」という疑問は抱かなようにし、.Netの環境なら何か便利なことがあるかもしれないという保険として解釈しておく。
そもそも趣味以外としてC#を使うことはまずないので、これも独習C#のサンプルプログラムを試してみたという思い出づくりに過ぎない。
この本はラムダ式やLINQに関して説明が丁寧なので、私にも何とか理解できそうな感じなのであとで別の思い出としてメモを残そうと思う。