我创建了一个用于数学计算的Python类。在这个对象中,我试图更改type()方法的结果,但是我的尝试失败了。
当我尝试使用type()方法来查看我的对象时,它显示为:
当我尝试使用type()方法来查看我的对象时,它显示为:
<class '__main__.MyClassName'>
我在我的方法中重写了type方法:class MyMathOBJ():
.
.
.
def __type__(self):
return "MyMathOBJ"
但是当我这样做时,没有任何改变。结果还是一样的。我只是期望得到MyMathOBJ
这个结果。
type
应该返回 类型对象,即类对象,一开始就是这样的,所以即使这是可能的,返回一个字符串也会是一个错误的实现。这听起来像是一个 X-Y 问题,你实际上想做什么? - juanpa.arrivillagaMyMathOBJ
更改<class '__main__.MyClassName'>
的结果。例如,a = 5;print(type(a))
代码将打印出int
。只是这样。没有混淆的东西。我只想要它。 - munir.ayguntype
的结果;不一定要将其更改为字符串,而是完全更改它。 - flakestest
方法对于 foo 实例重定向到Bar
(我已经在 gist 中更新了它)。我将发布一个新问题来探讨黑魔法元类方法,这激起了我的好奇心! :) - flakes