//放在py文件同級目錄下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace simple { public class Class1 { public static string StaticFun() { return "靜態方法"; } public static string Fun(string a) { return "普通方法" + a; } } }
這裏的clr是pythonnet模塊的別名,不是clr模塊,能夠先卸載clr模塊 pip uninstall clr。可能會有紅色波浪線提示,不用管,運行不報錯便可。python
import clr clr.AddReference("simple") from simple import * a = Class1.StaticFun() b = Class1.Fun('b') c = Class1().Fun('c') print(a) print(b) print(c)
須要安裝IronPython,VS中安裝步驟:工具-NuGet包管理器-管理解決方案的NuGet程序包web
using System; using System.Windows.Forms; using IronPython.Hosting; using Microsoft.Scripting; using Microsoft.Scripting.Hosting; namespace simple { public class Class1 { public void Test() { ScriptRuntime pyRuntime = Python.CreateRuntime(); //建立一下運行環境 dynamic obj = pyRuntime.UseFile("test1.py"); //調用一個Python文件 string dd = obj.main('hello world'); //調用腳本文件中對應的函數 } } }
//放在\bin\Debug目錄下 #coding = utf-8 def main(arr): return arr
當py文件須要第三方模塊的時候,在C#中也要引入第三方模塊,不然會報錯No module named random
dom
from random import randint # 隨機函數 def main(arr): try: return str(randint(5, 10)) except Exception as err: return str(err)