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

2024-09-28 21:59:57 发布

您现在位置: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())

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

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

Tags: columnsandselfdataframedatarawreturndef
2条回答

您的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

在课堂上你可以

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

您还可以让MySecond继承MyClass

class MySecond(MyClass):
   #code

相关问题 更多 >