是否可以使用户定义的类型成为python中内置类型的虚拟子类?我希望我的类被视为 的子类int
,但是我不想像这样直接继承:
class MyInt(int):
'''Do some stuff kind of like an int, but not exactly'''
pass
从那时起,无论我是否愿意,我的课程实际上都是不可变的。例如,不可能使用像__iadd__
and之类的方法,__isub__
因为int
无法修改自身。我可以从 继承numbers.Integral
,但是当有人打电话isinstance(myIntObj, int)
或issubclass(MyInt, int)
回答时False
。我知道具有 ABCMeta 元类的类可以使用该方法register
将类注册为虚拟基类,而这些虚拟基类并不真正从它们继承。有没有办法用内置类型来做到这一点?就像是:
registerAsParent(int, MyInt)
我环顾四周(在 python 文档中和一般在线),还没有找到任何接近我正在寻找的东西。我所要求的完全不可能吗?