您好,登錄后才能下訂單哦!
怎么在Python中使用return self方法?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
在Python中,return self的作用為:
Returning self from a method simply means that your method returns a reference to the instance object on which it was called. This can sometimes be seen in use with object oriented APIs that are designed as a fluent interface that encourages method cascading.
通俗的說法是, allow chaining
例子:
class Foo(object): def __init__(self): self.myattr = 0 def bar(self): self.myattr += 1 return self f = Foo() f.bar().bar().bar() print(f.myattr)
輸出結果為4.
把bar()方法改為返回return None, 則上述代碼會出錯。
class Foo(object): def __init__(self): self.myattr = 0 def bar(self): self.myattr += 1 return None f = Foo() f.bar().bar().bar() print(f.myattr)
輸出結果如下:
AttributeError: 'NoneType' object has no attribute 'bar'
那么return self返回的結果是什么呢?
class Foo(object): def __init__(self): self.myattr = 0 def bar(self): self.myattr += 1 #return None return self f = Foo() print(type(f.bar()))
輸出結果為:
<class '__main__.Foo'>
可以發現,return self返回的是類的實例。
一個真實的例子:
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).predict([[0,2]]) print(t)
輸出:
[0]
關于怎么在Python中使用return self方法問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。