这是一个对象还是一个函数?

时间:2017-04-29 20:29:25

标签: python

我正在学习机器学习教程,同时学习python。有一部分代码我不明白:

>>> from sklearn.naive_bayes import GaussianNB
>>> clf = GaussianNB()
>>> clf.fit(X, Y)

我不明白第二行。它是一个新的实例化对象,括号是否存在,因为它是一个构造函数?如果是,我如何将其与分配给变量的函数区分开来?我知道在这个例子中由于这一行clf.fit(X, Y)而相当清楚,但我想知道在其他情况下该怎么做。

3 个答案:

答案 0 :(得分:5)

Python中的所有内容都是一个对象。 GaussianNB可以调用。添加()会调用它。该调用的返回值完全取决于对象。

在这种特定情况下,GaussianNB()实例化一个新的GaussianNB对象并将其返回。

答案 1 :(得分:2)

在此示例中,您可以使用

>>> type(clf)
<class 'sklearn.naive_bayes.GaussianNB'>

并且看到他是一个班级。您也可以使用

>>> help(GaussianNB)

获取更多信息。 建议使用Python指南

  

类名通常应使用CapWords惯例。

和功能

  

函数名称应为小写,单词分隔   必要时强调提高可读性。

您可以阅读更多here

答案 2 :(得分:0)

这是一个对象。第三行是您可以随时执行的方法&#39;键入(对象)&#39;看看它是什么类型,所以尝试键入(clf)