>>classA:def__enter__(self):print'inenter'def__exit__(self,e_t,e_v,t_b):print'inexit'>>>withA()" />

黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python with用法實例

系統 1895 0

python中with可以明顯改進代碼友好度,比如:

復制代碼 代碼如下:

with open('a.txt') as f:?
??? print f.readlines()?

為了我們自己的類也可以使用with, 只要給這個類增加兩個函數__enter__, __exit__即可:
復制代碼 代碼如下:

>>> class A:?
??? def __enter__(self):?
??????? print 'in enter'?
??? def __exit__(self, e_t, e_v, t_b):?
??????? print 'in exit'?
?
>>> with A() as a:?
??? print 'in with'?
?
in enter?
in with?
in exit?

另外python庫中還有一個模塊contextlib,使你不用構造含有__enter__, __exit__的類就可以使用with:
復制代碼 代碼如下:

>>> from contextlib import contextmanager?
>>> from __future__ import with_statement?
>>> @contextmanager?
... def context():?
...???? print 'entering the zone'?
...???? try:?
...???????? yield?
...???? except Exception, e:?
...???????? print 'with an error %s'%e?
...???????? raise e?
...???? else:?
...???????? print 'with no error'?
...?
>>> with context():?
...???? print '----in context call------'?
...?
entering the zone?
----in context call------?
with no error?

使用的最多的就是這個contextmanager, 另外還有一個closing 用處不大
復制代碼 代碼如下:

from contextlib import closing?
import urllib?
?
with closing(urllib.urlopen('http://www.python.org')) as page:?
??? for line in page:?
??????? print line?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論