With語句上下文管理

 

 

在平時工做中總會有這樣的任務,它們須要開始前作準備,而後作任務,而後收尾清理....好比讀取文件,須要先打開,讀取,關閉python

這個時候就可使用with簡化代碼,很方便post

1.沒有用with語句spa

1
2
3
=  open  ( './test.txt' )
f.read()
f.close()

2.使用with語句code

1
2
with  open ( './test.txt' ) as f:
     f.read()

 

with的工做原理是?blog

with 中包含  __enter__  與 __exit__  方法, 執行順序是,在with下面語句未執行前,先執行__enter__方法,with下語句執行結束後,最後執行__exit__.ci

自定義一個上下文管理協議,看一下它的原理博客

1
2
3
4
5
6
7
8
9
10
11
12
class  Context():
     def  __enter__( self ):
         print ( 'start' )
         return  self
     def  __exit__( self , * unused):
         print ( 'over' )
     def  dosomething( self ):
         print ( 'dosomething' )
 
 
with Context() as ctx:
     ctx.dosomething()

打印結果string

startit

dosomethingio

over

1
<em  id = "__mceDel" ><em  id = "__mceDel" ><br><br>< / em>< / em>
小雪 博客地址:https://home.cnblogs.com/u/snow-l/
相關文章
相關標籤/搜索