在这里覆盖__new__的目的是什么?

Bub*_*Gut 4 python

我正在阅读Python intervaltree模块的代码并看到以下代码,(源代码在这里):

class Interval(namedtuple('IntervalBase', ['begin', 'end', 'data'])):
    __slots__ = ()  # Saves memory, avoiding the need to create __dict__ for each interval

    def __new__(cls, begin, end, data=None):
        return super(Interval, cls).__new__(cls, begin, end, data)
Run Code Online (Sandbox Code Playgroud)

它似乎没有在__new__函数中做任何额外的事情,那么在这里覆盖它的目的是什么?

任何帮助将非常感谢!谢谢!

wim*_*wim 5

父类是:

namedtuple('IntervalBase', ['begin', 'end', 'data'])
Run Code Online (Sandbox Code Playgroud)

参数begin,end和,data这些都是必需的参数.

Interval,argspec已经改变:data现在是可选的,默认为None.