Je souhaite appeler une fonction python à partir du code C#. Pour ce faire, je Python pour fonction d'appeler .NET comme indiqué dans les lignes suivantes de codeAppel d'une fonction python avec un paramètre nommé utilisant python.net à partir d'un code C#
using System;
using Python.Runtime;
public class Test{
public static void Main(){
using(Py.GIL()){
dynamic lb = Py.Import("lb");
dynamic result = lb.analyze("SomeValue");
Console.WriteLine(result);
}
}
}
La fonction python est quelque chose comme ceci:
def analyze(source, printout = False, raw = True):
# removed for bravity
La question est, comment J'ai mis "raw" à False
quand j'appelle la fonction d'analyse du code C#. J'ai essayé le suivant mais cela n'a pas fonctionné.
1. dynamic result = lb.analyze("SomeSource", raw : false); // No result
2. dynamic result = lb.analyze("SomeSource", @"raw = False"); // No result
Je sais qu'il est facile de le faire en faisant ceci:
dynamic result = lb.analyze("SomeSource", False, False);
Mais s'il y a plus de six ou sept paramètre nommé, il ne serait pas génial d'insérer tout manuellement et le changement celui que je voulais. Par exemple, la bibliothèque python que j'utilise possède 12 paramètres nommés avec une valeur par défaut incluant deux autres paramètres sans valeur par défaut.
MIS À JOUR J'ai aussi essayé:
3. dynamic result = lb.analyze("SomeSource", raw = false); // C# compilation error
Si je ne me trompe pas la syntaxe doit être 'raw = false', opérateur égal au lieu de virgule, ont vous avez essayé ça? 'résultat dynamique = lb.analyze (" SomeSource ", raw = false);' – ironstone13
@ ironstone13 oui je l'ai fait, mais le compilateur C# m'a montré une erreur de compilation. – ash