国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中return self的用法詳解

2020-01-04 14:48:15
字體:
來源:轉載
供稿:網友

在Python中,有些開源項目中的方法返回結果為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 selff = 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 Nonef = 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 selff = Foo()print(type(f.bar()))

輸出結果為:

<class '__main__.Foo'>

可以發(fā)現,return self返回的是類的實例。

一個真實的例子:

sklearn模塊中很多方法的返回結果為self, 比如大多數模型的fit()方法,例子如下:

from sklearn.linear_model import LogisticRegressionX = [[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的用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 景洪市| 子洲县| 民和| 方正县| 马鞍山市| 江都市| 北海市| 徐汇区| 泾阳县| 东明县| 会同县| 敦煌市| 东光县| 黄浦区| 梓潼县| 观塘区| 北流市| 衡水市| 永登县| 正镶白旗| 章丘市| 大英县| 沁源县| 茶陵县| 滦南县| 仙桃市| 奉贤区| 呼玛县| 扶沟县| 长岛县| 射阳县| 永年县| 西畴县| 景洪市| 威海市| 仪征市| 虹口区| 三亚市| 墨竹工卡县| 镇坪县| 遵义市|