导航

python的return self的用法

Posted on 2018-09-18 22:06  wzd321  阅读(2402)  评论(0编辑  收藏  举报

转载:https://blog.csdn.net/jclian91/article/details/81238782

class foo:
def __init__(self):
self.m = 0

def bar(self):
self.m += 1
return self
f = foo()
f.bar().bar().bar()
print(f.m)
print(type(f))
print(type(f.bar()))

输出:
3
<class '__main__.foo'>
<class '__main__.foo'>

 

一个真实的例子:

sklearn模块中很多方法的返回结果为self, 比如大多数模型的fit()方法,例子如下:

from sklearn.linear_model import LogisticRegression

X = [[0,0], [0,1], [1,0], [1,1]]
y = [0, 1, 1, 0]
clf = LogisticRegression()
#fit函数返回的结果就是self, 允许链式调用
t = clf.fit(X,y)
print(t)

输出:

LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,penalty='l2', random_state=None, solver='liblinear', tol=0.0001,verbose=0, warm_start=False)

总结:return self 返回的是类的实例