Как реализовать __repr__ для класса C# для использования в python.net?

Я имею 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

0 ответов

Другие вопросы по тегам