python 中關於 with 語句的使用
with..
.as var:
pass
def
__enter__
(self)
:print
('begin'
)return self
def
__exit__
(self)
:print
('end'
)
python的標準庫contextlib簡化了上述的寫法,此物件不需要實現__enter__和__exit__方法只需要通過被contextmanager這個decorator裝飾的generator yield出去,with語句就可以正常使用:
from contextlib import contextmanager
@contextmanager
defcreate_obj
(ar**)
:print
('begin'
)# 生成乙個物件並yield出去
obj = class_name(ar**)
yield obj
print
('end'
)
例如:contextlib中的 closing模組
from contextlib import closing
from urllib.request import urlopen
with closing(urlopen(
''))
as page:
for line in page:
print
(line)
其實closing()也是乙個用contextmanager裝飾的generator
@contextmanager
defclosing
(thing)
:try
:yield thing
finally
: thing.close(
)
參考 關於Python中的for迴圈控制語句
第乙個 求 50 100 之間的質數 import math for i in range 50,100 1 for j in range 2,int math.sqrt i 1 if i j 0 break else print i 第二個 把else的位置與if處於同一縮排。import mat...
python中關於import語句的認識
python中從乙個模組執行另乙個模組的最簡單的方法就是用import語句,import語句會執行被呼叫模組裡面的主 而且import之後還可以用 操作符呼叫被呼叫模組裡的函式。現在舉個例子如下 a.py for i in range 3 import b b.showlist b.py print...
關於Python中的for迴圈控制語句
關於python中的for迴圈控制語句 第乙個 求 50 100 之間的質數 import math for i in range 50,100 1 for j in range 2,int math.sqrt i 1 if i j 0 break else print i 第二個 把else的位置...