python中__new__ 的作用

class PositiveInteger(int):
    def __init__(self, value):
        super(PositiveInteger, self).__init__(self, abs(value))  
i = PositiveInteger(-3)
print i 

结果仍然是-3

class PositiveInteger(int):
    def __new__(cls, value):
        return super(PositiveInteger, cls).__new__(cls, abs(value))  
i = PositiveInteger(-3)
print i 

这样就是3了

你可能感兴趣的:(python中__new__ 的作用)