Я пытаюсь создать экземпляр класса, написанного на C ++ из Python. По какой-то причине я получаю синтаксическую ошибку при вызове метода «print», который не принимает аргументов и должен просто напечатать int:
IronPython 2.7.5b2 (2.7.5.0) on .NET 4.0.30319.18444 (32-bit)
Type "help", "copyright", "credits" or "license" for more information.
>>> import clr
>>> clr.AddReferenceToFileAndPath('c:\\users\\pletzer\\documents\\visual studio
>>> \\Projects\\AlexTest\\Debug\\AlexTest.dll')
>>> import at
>>> a = at.AlexTest(2)
>>> a.print()
File "<stdin>", line 1
a.print()
^
SyntaxError: ошибка синтаксиса
Заранее спасибо за любое предложение. Класс C ++
// AlexTest.h
#include <iostream>
#pragma once
using namespace System;
namespace at {
public ref class AlexTest
{
public:
AlexTest(int i) {
mi = i;
}
void print() {
std::cout << "mi = i\n";
}
private:
int mi;
};
}
Изменение имени метода с «print» на «display» устраняет проблему.
Также можно использовать (необработанная строка r ‘…’)
clr.AddReferenceToFileAndPath (r’c: \ users \ pletzer \ Documents \ visual studio \ Projects \ AlexTest \ Debug \ AlexTest.dll ‘)
чтобы избежать необходимости вводить двойную косую черту