减少在python中调用方法时的变量

问题描述 投票:-2回答:4

我正在使用sklearn进行线性回归。如果我这样做

reg = LinearRegression()
reg.fit(x_matrix, y)

效果很好。为了通过删除变量reg减少代码,我可以

LinearRegression.reg.fit(x_matrix, y)

这给我一个错误。请说明不同之处。

Python版本3.7.6

python scikit-learn linear-regression
4个回答
3
投票

您错过了LinearRegression之后的括号,并有一个不属于此的额外reg。使用:

LinearRegression().fit(x_matrix, y)

3
投票
reg = LinearRegression()
reg.fit(x_matrix, y)

类似于数学方程式,您可以将变量reg替换为其实际值(LinearRegression()

这样做将导致LinearRegression().fit(x_matrix, y)


1
投票

代码的问题是您忘记了创建新对象的括号。然后,您无需分配名称即可立即使用该对象。

相反,简短形式必须看起来像这样:

LinearRegression().fit(x_matrix, y)

这将创建类型为LinearRegression的对象,然后将使用该对象。这可能只是一个拼写错误或复制粘贴错误,尽管如果您不确定对象和类型之间的区别是什么,则应该查找一下,这也是python和许多其他语言的基础知识。


0
投票

一般的区别是,在第一个实例中,您是在调用类的函数之前创建类的对象。在第二种情况下,您尝试直接使用类的功能,而不先创建类的对象。仅当您将函数定义为@staticmethod时,才允许使用此方法。

© www.soinside.com 2019 - 2024. All rights reserved.