类似的问题:What's the advantage of a trailing underscore in Python naming?。这解决了优点/缺点,而这解决了这样做的原因,无论是广泛还是专门针对sklearn。
我正在查看sklearn文档,我注意到sklearn.model_selection.GridSearchCV属性都以下划线结尾。例如:
这是为什么?下划线做什么?请在答案中尽可能广泛(即不要参考sklearn&#13的GridSearchCV。
我认为这不仅仅是一个sklearn的事情,我不知道适当的标签是什么,所以我标记了sklearn。请更正标签(或我!)。
答案 0 :(得分:6)
对于sklearn,有一个具体的解释。检查sklearn developer guideline,其中有一个注释。该约定用于在调用fit()
后具有有意义值的估计量的属性。
然后用于检查估算器是否适合,例如参见here:
class LinearModel(six.with_metaclass(ABCMeta, BaseEstimator)):
"""Base class for Linear Models"""
[...]
def _decision_function(self, X):
check_is_fitted(self, "coef_")
[...]