【发布时间】:2016-08-19 22:48:04
【问题描述】:
我正在继承 from sklearn.ensemble import RandomForestClassifier,我正在尝试打印我的新估算器:
class my_rf(RandomForestClassifier):
def __str__(self):
return "foo_" + RandomForestClassifier.__str__(self)
给foo_my_rf()
我也试过了:
class my_rf(RandomForestClassifier):
def __str__(self):
return "foo_" + super(RandomForestClassifier, self).__str__()
结果相同。预期的东西很像 sklearn 默认行为:
>>> a = RandomForestClassifier() >>> 打印一个 RandomForestClassifier(bootstrap=True,class_weight=None,criteria='gini', max_depth=None, max_features='auto', max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0,n_estimators=10,n_jobs=1, oob_score=False,random_state=None,详细=0, 暖启动=假) >>>这也是我使用print a.__str__()时的结果。
我错过了什么? 谢谢。
与How do I change the string representation of a Python class?相关
【问题讨论】:
-
显然父类
__str__实现是类的名称。你说得对。 -
@jonrsharpe - 哎呀,编辑了问题以明确我在寻找什么。
-
您是否尝试过查看
__repr__? -
@jonrsharpe - 是的,结果相同。我必须在对象与类方面缺少一些东西,在 python 中我总是这样做:)
-
不应该是
super(my_rf, self).__str__吗?通过指定super(RandomForestClassifier, self),您实际上是跳过RandomForestClassifier对__str__的实现。
标签: python oop scikit-learn