如何继承和初始化父类方法

How to inherit and initialize a parent class method

提问人:hghebrem 提问时间:1/10/2023 最后编辑:hghebrem 更新时间:1/10/2023 访问量:52

问:

我想使用父类中的 FTestAnovaPower.solve_power 函数并获取一些值,它们在 PwrAnalysis 类中进行一些额外的计算。 但是我无法将参数传递给父类。 我正在尝试使用以下代码继承一个函数。

import statsmodels.stats.power
class PwrAnalysis(statsmodels.stats.power.FTestAnovaPower):

def __init__(self,effect_size, nobs, alpha, power, k_groups):
    statsmodels.stats.power.FTestAnovaPower.__init__(self,effect_size, nobs, alpha, power, k_groups)

当我尝试运行时,我得到“solve_power() 缺少 1 个必需的位置参数:'self'”c=PwrAnalysis.solve_power(effect_size=0.33, nobs=None, alpha=0.04, power=0.8, k_groups=3)

作为参考,以下代码运行良好:

x = statsmodels.stats.power.FTestAnovaPower()
g = x.solve_power(effect_size=0.33, nobs=None, alpha=0.04, power=0.8, k_groups=3)

我正在传递自我论证,我不明白为什么它要求我再次传递自我

Python 继承 方法 StatsModels

评论

1赞 quamrana 1/10/2023
为什么在一个片段中你这样做:,但在下一个片段中你有?你为什么不在第一个也使用?c=PwrAnalysis.solve_power(...g = x.solve_power(...x.solve_power(...
0赞 quamrana 1/10/2023
此外,如果您的参考代码是正确的,则您说不需要参数。如果是这样,那么你不需要任何方法(或者需要调用FTestAnovaPower()class PwrAnalysis__init__()FTestAnovaPower.__init__())
0赞 chepner 1/10/2023
您尚未创建 first 的实例。工作代码确实创建了一个实例,并使用实例(而不是 FTestAnovaPower 本身)来调用该方法。PwrAnalysisFTestAnovaPower
0赞 Josef 1/10/2023
为什么要传递给?在 Power 类的设计中,这些是方法的参数,对于 Power 类的实例不是固定的。effect_size, nobs, alpha, power, k_groups__init__
0赞 Josef 1/10/2023
statsmodels.stats.power.FTestAnovaPower.__init__应该替换为调用,但是,父类将忽略superkwargs__init__

答: 暂无答案