class sample:
def __enter__(self):
print "in __enter__()"
return "foo"
def __exit__(self, type,value, trace):
print "in __exit__()"
def get_sample():
return sample()
with get_sample() as sample:
print "sample:",sample
執行結果
in __enter__()
sample: foo
in __exit__()
原理:1. __enter__()方法被執行
2. __enter__()方法返回的值 - 這個例子中是"foo",賦值給變數'sample'
3. 執行**塊,列印變數"sample"的值為 "foo"
4. __exit__()方法被呼叫
with真正強大之處是它可以處理異常
class sample:
def __enter__(self):
return self
def __exit__(self, type,value, trace):
print "type1:", type
print "value:",value
print "trace:",trace
def do_something(self):
bar = 1/0
return bar + 10
with sample() as sample:
sample.do_something()
執行結果:
type1:
value: integer division or modulo by zero
trace:
traceback (most recent call last):
file "c:\users\administrator\desktop\test.py", line 14, in
sample.do_something()
file "c:\users\administrator\desktop\test.py", line 10, in do_something
bar = 1/0
zerodivisionerror: integer division or modulo by zero
所以,異常處理可以放在__exit__()中
WinCE的Boot Loader是如何工作的
wince的boot loader是如何工作的 前提 此boot loader是位於nor flash的零位址的,cpu配置成復位後在此執行。1.前期cpu初始化 l 進入超級使用者模式 supervisor mode 顯式通過軟體指令初始化進入。l 清除指令和資料cache。l 清除tlbs tr...
你是如何自學 Python 的?
知乎 這是我在過去幾家公司招聘到工程師,python入職培訓的過程。時間分為4周,全部自學,僅提供大綱。適用於web方向 1 week1 讀完 簡明python教程 適應python開發環境 2 week2 寫個爬蟲,需要深入了解re urllib2 sqlite3 threading,queue等...
你是如何自學Python的
作為一名python愛好者,我也想跟大家分享分享我自學python的一些小經驗。搬來你的小板凳,聽聽看吧。也許,你會很有收穫,也許你也走上了自學python的不歸路。開講啦 然後就是要打好基礎,要想成為一名優秀的python程式設計師,最重要的是掌握程式設計思想。有了思想,我們就可以觸類旁通。在學習...