我正在使用Python.NET加载 C# 程序集以从 Python 调用 C# 代码。这很干净,但是我在调用如下所示的方法时遇到问题:
Our.Namespace.Proj.MyRepo 中的一个方法:
OutputObject GetData(string user, int anID, int? anOptionalID= null)
我可以在存在可选的第三个参数但不知道为第三个参数传递什么以匹配空情况的情况下调用该方法。
import clr
clr.AddReference("Our.Namespace.Proj")
import System
from Our.Namespace.Proj import MyRepo
_repo = MyRepo()
_repo.GetData('me', System.Int32(1), System.Int32(2)) # works!
_repo.GetData('me', System.Int32(1)) # fails! TypeError: No method matches given arguments
_repo.GetData('me', System.Int32(1), None) # fails! TypeError: No method matches given arguments
iPython Notebook 表明最后一个参数应该是以下类型:
System.Nullable`1[System.Int32]
只是不确定如何创建一个匹配 Null 情况的对象。
有关如何创建 C# 识别的 Null 对象的任何建议?我假设通过本机 Python None 会起作用,但事实并非如此。