激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python contextlib模塊使用示例

Python contextlib模塊使用示例

2019-11-20 22:27junjie Python

這篇文章主要介紹了Python contextlib模塊使用示例,本文著重使用contextlib模塊產生一個上下文管理器,需要的朋友可以參考下

看這個模塊要先看with as的用法,最常用的方法就是打開一個文件:

復制代碼代碼如下:

with open(“filename”) as f:
f.read()


with可以調用一個上下文管理器,產生運行時的上下文環境。上下文管理器主要定義兩個方法,__enter__,__exit__。__enter__返回上下文里操作的對象,如f。__exit__是銷毀對象和異常處理。

 

contextlib模塊對外有三個接口,
contextmanager裝飾器,裝飾的函數必須是一個生成器。然后返回一個函數,在函數調用的時候返回一個上下文管理器。

nested為了一次調用多個上下文管理器的時候用,將所有上下文管理器里的__enter__放到vars里,一次yield返回,然后unpack。就產生多個對象了。__exit__都放到exits列表里,在finally里統一調用,這些__exit__在調用上下文管理器產生異常時,如何處理。如果返回false,將會把異常繼續拋出,返回true則不會拋出異常。

closing,這個用過,沒想到的是竟然是個類,而不是個函數。就是把有close方法卻沒有__exit__方法的對象變成一個上下文管理器。代碼很簡單:

復制代碼代碼如下:

class closing(object):
    def __init__(self, thing):
        self.thing = thing
    def __enter__(self):
        return self.thing
    def __exit__(self, *exc_info):
        self.thing.close()

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 在线免费观看毛片视频 | 久久97超碰 | 成人爱爱电影 | 日本成人一二三区 | 色网免费观看 | 91网视频在线观看 | 一级爱爱 | 亚洲免费高清 | 国产一区二区三区视频免费 | 成年免费视频黄网站在线观看 | 国产乱色精品成人免费视频 | 国产精品999在线观看 | 最新影院| 99精品国产成人一区二区 | 国产精品成人av片免费看最爱 | 欧美日韩精品一二三区 | 91超在线| 国产午夜免费福利 | 刘亦菲一区二区三区免费看 | av不卡毛片| 色爱99| 日本欧美一区二区 | 羞羞视频免费观看入口 | 色吧久久 | 18视频在线观看娇喘 | 成人一区二区三区四区 | 日韩视频区| 爱高潮www亚洲精品 国产精品一区自拍 | 在线播放免费人成毛片乱码 | 99国产精品白浆在线观看免费 | 亚洲小视频网站 | 欧美在线观看视频网站 | 2018亚洲男人天堂 | 免费日本一区二区 | 欧美亚洲国产一区二区三区 | 一本色道久久综合狠狠躁篇适合什么人看 | 国产二区三区在线播放 | 激情综合视频 | 欧美国产一区二区三区激情无套 | 精品国产九九九 | 特级西西444www大精品视频免费看 |