繁体   English   中英

Python:如何扩展课程?

[英]Python: How to extend a class?

因此,我真的很想为pandas.core.frame.DataFrame添加一些新方法。 例如,我想要一个名为.idx的方法:

pandas.core.frame.DataFrame.idx(self, rows, cols):
    return self.iloc[rows].loc[cols]

这可能吗? 我不确定语法应该是什么-该类已经存在于库中,所以我不能只是将函数放在类定义中。

您是否可以扩展DataFrame ,继承其所有功能,然后自由地在顶部定义自己的数据DataFrame

在python中,它看起来像:

class ExtendedDataFrame(DataFrame):
    ...

然后,只需使用ExtendedDataFrame实例而不是DataFrame来获得额外的好处。

我还建议您阅读本教程该教程涵盖了继承。

如果要覆盖super(父)类的功能,还请确保签出python实现的super()版本。

是一个有关super()重要信息的SO问题,因为我注意到链接的教程仅简要介绍了super() ,并且在注释中也不少。

在Python中,这实际上非常容易。 尽管我建议从DataFrame继承,正如MeetTitan回答的那样,有时候这是行不通的,但是您可以添加如下功能:

class Abc(object):
    pass

def new_funct(self):
    print 1234

Abc.instance_funct = new_funct
a = Abc()
a.instance_funct()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM