C#からPythonスクリプトを実行する

独習C#(新版)でC#をお勉強中

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に関して説明が丁寧なので、私にも何とか理解できそうな感じなのであとで別の思い出としてメモを残そうと思う。