Writing iron python method with ref or out parameter

柔情痞子 提交于 2019-12-05 03:05:45

In python (and consequently in IronPython) you cannot change a parameter that is not mutable (like strings)

So you can't directly traslate the given code to python, but you must do something like:

def GetTP(name):
  return tuple([2, 1])

and when you call it you must do:

retTuple = GetTP(name)
ter = retTuple[0]
prov = retTuple[1]

that is the same behaviour when in IronPython you call a C# method containing out/ref parameters.

In fact, in that case IronPython returns a tuple of out/ref parameters, and if there's a return value is the first in the tuple.

EDIT: actually it's possible to override a method with out/ref parameters, look here:

http://ironpython.net/documentation/dotnet/dotnet.html#methods-with-ref-or-out-parameters

Python script something like this should work:

ter = clr.Reference[System.String]()
prov = clr.Reference[System.Int32]()

GetTP('theName', ter, prov)

print(ter.Value)
print(prov.Value)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!