所以以复杂的内置类型为例。出于教育目的,我正在制作自己的 Complex 版本,但是到目前为止,它们的行为方式并不相同。当我跑
>>> a = (2+3j)
>>> a
(2+3j)
>>> from complex import Complex # My version of the type
>>> b = Complex(2, 3)
>>> b
<complex.Complex object at 0x10caeb0f0>
我希望我的班级输出同样的东西。我一直认为这是str魔术方法的目的,但只有当某些东西试图将实例转换为字符串时才会调用,这在上面的示例中没有发生。这个怎么做?