我需要扩展Networkx python包并Graph为我的特殊需要添加一些方法
我想这样做的方法是简单地推导出一个新类说NewGraph,并添加所需的方法.
然而,networkx中还有一些其他函数可以创建和返回Graph对象(例如,生成随机图).我现在需要将这些Graph对象转换为NewGraph对象,以便我可以使用我的新方法.
这样做的最佳方式是什么?或者我应该以完全不同的方式解决问题?
Python 2.2的Changelog(引入了新式类)说明了关于该__new__函数的以下内容:
__new__是一个静态方法,而不是类方法.我最初认为它必须是一个类方法,这就是我添加classmethod原语的原因.不幸的是,使用类方法,upcalls在这种情况下不能正常工作,因此我不得不将它作为静态方法,并将显式类作为其第一个参数.
但是,我无法想到为什么类方法不能用于此目的,它肯定会更好看.为什么最终不会__new__以类方法结束?当Guido说"在这种情况下上调不能正常工作"时,Guido会提到什么?