无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Context Manager 怎么理解?

2023-07-27 17:02 作者:Mr藍(lán)琿  | 我要投稿

Context Manager 是 Python 中的一種類。


按照鴨子類型(Duck typing)的說法,一個(gè)類只要有了 __enter__() 與 __exit__() 方法,那么這個(gè)類就是妥妥的 Context Manager 類。


最高級(jí)的理解就是制造。下面的 Python 代碼定義了一個(gè)不能干太多事情的類 SimpleClass, 這個(gè)類有且僅有兩個(gè)方法, ?__enter__() 與 __exit__()。 把這個(gè)類弄到 with block 中,檢查 __enter__() 與 __exit__() 何時(shí)會(huì)被調(diào)用。


猜猜上面代碼的輸出是什么?(A) Hi Bye True Here?(B)Hi Bye False Here ?(C) Hi True Bye Here (D) True Hi Bye Here


倒數(shù)第二行的 isinstance() 用于檢查 scm 對(duì)象是不是與抽象基類“雞肋”?AbstractContextManager 有關(guān)系。


其實(shí),open() 函數(shù)的返回值也是個(gè) Context?Manager 對(duì)象??梢杂孟旅娴拇a驗(yàn)證。你會(huì)發(fā)現(xiàn), dir(f) 中包含了 __enter__() 與 __exit__() 方法。


使用 Context?Manager 對(duì)象,讓 __exit__() 方法自動(dòng)做掃尾工作


Context Manager 怎么理解?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
滦南县| 囊谦县| 五河县| 南投市| 昌平区| 专栏| 望奎县| 临颍县| 贡嘎县| 广河县| 久治县| 姚安县| 南澳县| 扶沟县| 分宜县| 东阳市| 左云县| 宜川县| 泸溪县| 阜南县| 天津市| 西昌市| 井冈山市| 鄂伦春自治旗| 崇文区| 甘谷县| 宜黄县| 星座| 陆丰市| 苏尼特左旗| 平塘县| 淮北市| 古田县| 奎屯市| 牡丹江市| 察雅县| 龙泉市| 德格县| 密云县| 寻甸| 青浦区|