Python - 类方法是否继承类参数?

时间:2017-02-21 16:22:18

标签: python class methods statsmodels

在python中,我试图了解StatsModel Linear Mixed Effects Models

模型类是:

class statsmodels.regression.mixed_linear_model.MixedLM(endog, exog, groups, 
                                                        exog_re=None, use_sqrt=True, 
                                                        missing='none', **kwargs)   

有一个'组'参数。我的问题是

类方法是否继承了类参数?

询问的原因是,对于班级methods,他们使用的方法from_formula不包含'组'参数。但是在他们编写的example代码中,

model = sm.MixedLM.from_formula("Weight ~ Time", data, re_formula="Time", 
                                groups=data["Pig"])

包括'组' ' from_formula'内的参数方法,因此我的问题,

类方法是否继承了类参数?

2 个答案:

答案 0 :(得分:1)

不,根本没有“类参数”。有构造函数的参数。

正如here所述,args和kwargs被传递给模型(构造函数 - ____init____方法)。 然后模型的对象返回。这个方法隐藏了你的一些动作,但如果你知道你在做什么,你可以传递一些参数,就好像你将它们传递给构造函数一样。

这些参数是可选的。

  

args:额外参数

     

将这些传递给模型

     

kwargs:额外的关键字参数

     

这些传递给模型,但有一个例外。该eval_env关键字   被传递给patsy。它可以是apatsy.EvalEnvironmentobject或   一个整数,指示要使用的命名空间的深度。例如,   默认的eval_env = 0使用调用命名空间。如果你想使用   一个“干净”的环境设置eval_env = -1。

答案 1 :(得分:0)

纯Python概念接受类/函数中的* args和** kwargs。如果我们没有传递给任何类或函数需要多少参数,我们使用args或kwargs。请仔细阅读此链接args and kwargs。我看到了内部设计from_formula,它正在寻找组作为kwargs。