Как реализовать __repr__ для класса C # для использования в python.net? - PullRequest
0 голосов
/ 03 июня 2018

У меня установлена ​​pythonnet v 2.3.0.У меня есть библиотека классов C #, которую я использую в Python.У меня есть Point класс (фрагмент кода):

public Point(double x, double y)
{
    this.x = x;
    this.y = y;
}

public override string ToString()
{
    return $"Point({x}, {y})";
}

Когда я работаю с этой библиотекой классов в Python (в оболочке Python):

>>> p1 = Point(10,15)
>>> p1
<Geometry.Point object at 0x000000000558F828>
>>> str(p1)
'Point(10, 15)'

Поскольку я переопределяюToString(), когда я запускаю str(p1), я вижу свой собственный вид объекта.Однако, когда я просто получаю доступ к переменной p1, она переходит к методу __repr__() под капотом, что вызывает у меня <Geometry.Point object at 0x000000000558F828>.

Есть ли метод в классе C #, который можно переопределитьтак что pythonnet будет использовать этот метод при получении __repr__?

https://github.com/pythonnet/pythonnet/issues/680

...