SetVariable 함수로 C# 함수를 넘기는 것을 알아 보겠습니다.
먼저 public 함수를 하나 만드시구요,
이렇게 하면 Python Code에서 아래와 같이 GetDigitFromString함수를 사용할수 있습니다.
DigitString = GetDigitFromString('12mm')
- C#에서 Python Code의 함수 호출하기
ScriptScope의 GetVariable 함수를 통하여 Python 함수를 구한 뒤 호출하면 됩니다.
-------------------------------------------------------------------
2011.06.18
Python함수를 ScriptScope에 넣기
좀 풀어 이야기 하자면 Python 사용자 정의 함수를 작성한 뒤 ScriptScope에 넣고
나중에 같은 ScriptScope 기반에서 실행하는 Python 코드에서 사용가능하도록 하자는 것입니다.
-------------------------------------------------------------------
2011.06.30
Python함수를 C#에서 호출하기
아래와 같은 Python 코드를 작성합니다.
C# 코드에서 GetVairable함수를 통해 위 Python 함수를 구하기만 하면 됩니다.
Python 함수를 구한 뒤에는 아래와 같이 사용하면 됩니다.
string sFromUnit = oGetTemperatureUnitFromValueExp(sValue);
먼저 public 함수를 하나 만드시구요,
public class FuncForScript
{
/// <summary>
/// return digit part from string
/// </summary>
/// <param name="sFromString"></param>
/// <returns></returns>
static public string GetDigitFromString(string sFromString)
{
string sDigitString = string.Empty;
sFromString = sFromString.Trim();
foreach (char c in sFromString)
{
if (!char.IsLetter(c))
{
sDigitString += c;
}
else
{
break;
}
}
return sDigitString;
}
}
ScriptScope에서 아래와 같이하여 함수를 넘길 수 있습니다.1 2 | oScriptScope.SetVariable("GetDigitFromString", new Func<string, string> (FuncForScript.GetDigitFromString)); | cs |
DigitString = GetDigitFromString('12mm')
- C#에서 Python Code의 함수 호출하기
ScriptScope의 GetVariable 함수를 통하여 Python 함수를 구한 뒤 호출하면 됩니다.
1 2 3 4 5 | Func<string, int> oFunc = oScriptScope.GetVariable<Func<string, int>>("PostProcessForSpooList"); if (null != oFunc) { oFunc(sFilePath); } | cs |
2011.06.18
Python함수를 ScriptScope에 넣기
좀 풀어 이야기 하자면 Python 사용자 정의 함수를 작성한 뒤 ScriptScope에 넣고
나중에 같은 ScriptScope 기반에서 실행하는 Python 코드에서 사용가능하도록 하자는 것입니다.
1 2 3 | ScriptSource oSource = PythonEngine.CreateScriptSourceFromFile("python file path"); CompiledCode oCompiled = oSource.Compile(); oCompiled.Execute(PythonScope); | cs |
2011.06.30
Python함수를 C#에서 호출하기
아래와 같은 Python 코드를 작성합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # brief expose function to get temperature unit from option # author humkyung # date 2011.06.30 def GetTemperatureUnitFromOptionExp(option): if 'SI(MPa)' == option: return 'degC' elif 'SI(ba)' == option: return 'degC' elif 'CE' == option: return 'degC' elif 'Ft-in' == option: return 'degF' return option | cs |
1 2 | Func<string, string> oGetTemperatureUnitFromValueExp = PythonScope.GetVariable<Func<string, string>>("GetTemperatureUnitFromValueExp"); | cs |
Python 함수를 구한 뒤에는 아래와 같이 사용하면 됩니다.
string sFromUnit = oGetTemperatureUnitFromValueExp(sValue);
댓글
댓글 쓰기