忍者ブログ
Slic3rの設定についてまとめてます。Slic3rの日本語版が見当たらなかったので、使い方をまとめました。 最近はC#のメモ帳代わりになってます。

C# | C#からPython 引数渡す。

C#から呼び出したPythonコードに引数を渡す。
呼び出し方は、C# | C#から呼び出したPythonをVisualStudio上でデバッグと同じ。

Pythonのコードはこんな感じ
class PyClass(object):
    def __init__(self, p,y):
        self.placeCode=p 
        self.year=y 
私Python書けないので凄い怪しいですが、取りあえず見よう見まねでクラスを書いてみた。
C#からこのクラスをインスタンス化する際に引数を指定してみる。
public class cRunPython
    {
        public void Run(string path)
        {
            //スクリプトのランタイムオプション
            Dictionary<string, object> options = new Dictionary<string, object>();
#if DEBUG
            //デバッグ実行の場合スクリプトもデバッグモードにする。
            options["Debug"] = true;
#endif
            //オプションを指定してPythonのランタイムを作成する。
            ScriptRuntime pyRuntime = Python.CreateRuntime(options);

            //Pythonのファイルを指定する。
            //ScriptScopeの型は実行時に解決される。
            dynamic py = pyRuntime.UseFile(path);

            //Pythonクラスのインスタンスを生成
            dynamic cPy = py.PyClass(203, 1904);

            //インスタンスのメンバにアクセス
            Console.WriteLine("{0},{1}", cPy.placeCode, cPy.year);
        }
    }
出力は
203,1904
 py.PyClass(203, 1904) でインスタンス化しているけど、とにかく動的に処理してくれている模様
型の指定が無いのがモーレツに気持ち悪い


関連記事