#python #.net #python.net
#python #.net #python.net
Вопрос:
Я использую консольную программу .net 4.7.1, разговаривающую с python.net, о котором VS2017 сообщает как о версии 2.5.1.0 (версия времени выполнения v4.0.30319), код Python находится в версии 3.6
python:
def ping(input):
if (input == 'ping'):
return 'pong'
return 'invalid'
def headervalid(header):
if (header == '@nu001erANSI '):
return True
return False
if __name__ == '__main__':
input = '@nu001erANSI '
print(headervalid(input))
input = 'ping'
print(ping(input))
точечная сеть :
using (Py.GIL())
{
dynamic np = Py.Import("numpy");
Console.WriteLine(np.cos(np.pi * 2));
dynamic sin = np.sin;
Console.WriteLine(sin(5));
double c = np.cos(5) sin(5);
Console.WriteLine(c);
dynamic a = np.array(new List<float> { 1, 2, 3 });
Console.WriteLine(a.dtype);
dynamic b = np.array(new List<float> { 6, 5, 4 }, dtype: np.int32);
Console.WriteLine(b.dtype);
Console.WriteLine(a * b);
dynamic parsers = Py.Import("newworld_parsers.bridgetest");
string input = "ping";
var result = parsers.ping(input);
Console.WriteLine(result);
input = @"@nu001erANSI ";
result = parsers.headervalid(input);
Console.WriteLine(result);
Console.WriteLine("=======");
Console.ReadLine();
}
Автономные отчеты о запуске python:
True
pong
Press any key to continue . . .
Отчеты о запуске Dot net:
1.0
-0.9589242746631385
-0.675262089199912
float64
int32
[ 6. 10. 12.]
pong
False
=== Press any key to continue ====
Обратите внимание на значение True в python и False при вызове из C#
Специальные символы в headervalid() из dot net, похоже, не отображаются правильно. Что я должен сделать, чтобы исправить это? Любые идеи с благодарностью!
Ответ №1:
Помещение символа ‘@’ перед строкой C # превращает ее в необработанную строку, что означает, что никакие escape-последовательности внутри не будут работать.
Вы можете увидеть это, добавив Console.WriteLine(input);
в свой код.
Комментарии:
1. ПОТЕРЯННЫЙ, ты потрясающий! Спасибо, что заметили это, я пинаю себя. Я удалил дословный строковый литерал, и теперь он отлично работает.