繁体   English   中英

在python中从一个类继承一个函数到另一个类?

[英]inherit a function from one class to another in python?

我有一个类调用两个函数和两个实例方法。

    class MyClass(object):
        def df1(self):
            raw_data = {'preTestScore': [4, 24, '', 2, 3],'postTestScore': [25, 94, 57, 62, 70]}
            df1 = pd.DataFrame(raw_data, columns = ['preTestScore', 'postTestScore'])
            return df1

        def df2(self):
            raw_data = {'preTestScore': [14, 4, 15, 12, 13],'postTestScore': ['', 4, 7, 2, 7]}
            df2 = pd.DataFrame(raw_data, columns = ['preTestScore', 'postTestScore'])
            return df2

        def df1_and_df2(self):
            return (self.df1(), self.df2())

以及如何从另一个类继承这两个 dfs

  class MySecond():
       #call df1 and df2 from MyClass
       #work on from those two dfs

在课堂上你可以做

obj = MyClass()
obj.dfl()
obj.df2()

你也可以让 MySecond 继承 MyClass

class MySecond(MyClass):
   #code

您的MyClass.df1MyClass.df2方法不依赖于MyClass对象,这意味着它们可以声明为静态方法:

class MyClass(object):
    @staticmethod
    def df1():
        raw_data = {'preTestScore': [4, 24, '', 2, 3],'postTestScore': [25, 94, 57, 62, 70]}
        df1 = pd.DataFrame(raw_data, columns = ['preTestScore', 'postTestScore'])
        return df1

    @staticmethod
    def df2():
        raw_data = {'preTestScore': [14, 4, 15, 12, 13],'postTestScore': ['', 4, 7, 2, 7]}
        df2 = pd.DataFrame(raw_data, columns = ['preTestScore', 'postTestScore'])
        return df2

从那里可以直接从类中的任何地方调用它们,而无需实例化对象:

MyClass.df1()
MyClass.df2()

编辑:要从MyClass继承,您将执行以下操作:

class MySecond(MyClass):
    pass

现在实例化MySecond将继承MyClass方法。 例如

instance = MySecond()
instance.df1_and_df2()

有关继承的更多信息: https : //docs.python.org/3/tutorial/classes.html#inheritance

暂无
暂无

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

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