我正在阅读Python intervaltree
模块的代码,并看到以下代码(source code here):
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)
在__new__
函数中似乎没有做任何额外的事情,那么这里覆盖它的目的是什么?
任何帮助将不胜感激!谢谢!
答案 0 :(得分:5)
父类是:
namedtuple('IntervalBase', ['begin', 'end', 'data'])
此处的参数begin
,end
和data
都是必需的参数。
在Interval
中,argspec已更改:data
现在为可选,并且默认为None
。