您需要覆盖
__new__,而不是
__init__:
class Foo(int): def __new__(cls, some_argument=None, value=0): i = int.__new__(cls, value) i._some_argument = some_argument return i def print_some_argument(self): print self._some_argument
现在您的班级按预期工作:
>>> f = Foo(some_argument="I am a customized int", value=10)>>> f10>>> f + 818>>> f * 0.252.5>>> f.print_some_argument()I am a customized int
有关覆盖的更多信息,请
new参见Python
2.2中的Unifying类型和类。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)