У меня установлена 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