2010-05-18 5 views

Répondre

4

en python (et par conséquent IronPython) vous ne pouvez pas modifier un paramètre non modifiable (comme cordes)

vous ne pouvez pas traslate directement le code donné à python, mais vous devez faire quelque chose comme:

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

et quand vous l'appelez vous devez faire:C'est le même comportement lorsque dans IronPython vous appelez une méthode C# contenant des paramètres out/ref. En fait, dans ce cas, IronPython retourne un tuple de paramètres out/ref, et s'il y a une valeur de retour, c'est le premier dans le tuple.

EDIT: fait il est possible de passer outre une méthode avec des paramètres/ref, regardez ici:

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

+0

je voulais expliquer problème aussi simple que possible, c'est pourquoi j'ai utilisé cette méthode d'exemple. Le vrai problème est que cette méthode remplace la méthode dans la classe de base et je dois fournir la même signature dans IronPhyton pour remplacer la méthode de base. J'ai essayé votre chemin mais je n'aide pas ... – aron

+1

Vérifiez ma modification;) – digEmAll

+1

Vous ne voulez pas un tuple? – Dykam

1

script Python quelque chose comme cela devrait fonctionner:

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

GetTP('theName', ter, prov) 

print(ter.Value) 
print(prov.Value) 
Questions connexes