相关疑难解决方法(0)

将基类转换为派生类python(或更多pythonic方式的扩展类)

我需要扩展Networkx python包并Graph为我的特殊需要添加一些方法

我想这样做的方法是简单地推导出一个新类说NewGraph,并添加所需的方法.

然而,networkx中还有一些其他函数可以创建和返回Graph对象(例如,生成随机图).我现在需要将这些Graph对象转换为NewGraph对象,以便我可以使用我的新方法.

这样做的最佳方式是什么?或者我应该以完全不同的方式解决问题?

python inheritance base-class derived-class

38
推荐指数
2
解决办法
3万
查看次数

为什么Python新样式类中的__new__不是类方法?

Python 2.2的Changelog(引入了新式类)说明了关于该__new__函数的以下内容:

__new__是一个静态方法,而不是类方法.我最初认为它必须是一个类方法,这就是我添加classmethod原语的原因.不幸的是,使用类方法,upcalls在这种情况下不能正常工作,因此我不得不将它作为静态方法,并将显式类作为其第一个参数.

但是,我无法想到为什么类方法不能用于此目的,它肯定会更好看.为什么最终不会__new__以类方法结束?当Guido说"在这种情况下上调不能正常工作"时,Guido会提到什么?

python language-design new-operator new-style-class

35
推荐指数
1
解决办法
1957
查看次数