最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
南投市| 佛山市| 工布江达县| 咸丰县| 罗城| 长顺县| 德阳市| 洛宁县| 建德市| 海安县| 土默特右旗| 察雅县| 海丰县| 苍南县| 邢台市| 梓潼县| 邢台县| 宁安市| 营口市| 蒲城县| 进贤县| 正定县| 化德县| 龙岩市| 利辛县| 丹阳市| 体育| 黄山市| 仁化县| 寻乌县| 汤阴县| 通江县| 蓝田县| 花垣县| 苍山县| 南宫市| 布尔津县| 织金县| 涪陵区| 沐川县| 黑河市|