首页 > 解决方案 > 如何为要在 python.net 中使用的 C# 类实现 __repr__?

问题描述

我安装了pythonnetv 2.3.0。我有一个在 Python 中使用的 C# 类库。我有一个Point类(代码片段):

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

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

当我在 Python 中使用这个类库时(在 Python shell 中):

>>> 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

标签: c#python.netpython.netpythonnet

解决方案


推荐阅读