[英]Python Inherit from one class but override method calling another class?
[英]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.df1
和MyClass.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.