为什么我不能在创建实例之前调用某些类的方法?理解逻辑

2024-05-18 21:04:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个例子来帮助你理解我的意思

例1工程:

import pandas as pd
import numpy as np
x_grid = np.linspace(-3, 3, 1000)
df = pd.read_excel('somefile.xlsx').dropna()

在创建DataFrame对象时,我对其实例调用了dropna()方法

示例2不起作用:

from statsmodels.nonparametric.kde import KDEUnivariate
kde = KDEUnivariate(df).fit().evaluate(x_grid)

要使其工作,我需要先创建类的实例,如下所示:

kde = KDEUnivariate(df)

然后一次调用一个方法

kde.fit()
grid = kde.evaluate(x_grid)

这背后的逻辑是什么? 谢谢你的帮助


Tags: 方法importpandasdfasnp工程例子
1条回答
网友
1楼 · 发布于 2024-05-18 21:04:50

当您尝试执行以下操作时:

import pandas as pd
import numpy as np
x_grid = np.linspace(-3, 3, 1000)
df = pd.read_excel('somefile.xlsx').dropna()

from statsmodels.nonparametric.kde import KDEUnivariate
kde = KDEUnivariate(df).fit().evaluate(x_grid)

然后实际传递fit()方法的返回值,即'NoneType'

如果你这样做的话也是一样的:

kde = KDEUnivariate(df)
kde = kde.fit()

grid = kde.evaluate(x_grid)

但你不想这样

您需要一个实例化的,然后拟合的KDEUnivariate()对象。 然后评估一下

这就是调用机制的适当方式如下所示的原因:

kde = KDEUnivariate(df)
kde.fit()

grid = kde.evaluate(x_grid)

在这种情况下,KDEUnivariate()实例的evaluate()方法与KDEUnivariate()实例的KDEUnivariate()方法一起工作,并使用它的拟合参数,返回KDEUnivariate()实例的fit()方法

相关问题 更多 >

    热门问题