pythonコンテキスト管理プロトコル
974 ワード
class Foo:
def __init__(self,name):
self.name = name
def __enter__(self):
print(' enter')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print(' exit')
print(exc_tb) #name
print(exc_type)
print(exc_val) #Traceback
return True # TURE ,
with Foo('a.txt') as f:
print(f)
print(abcdefg)
print(f.name)
print('00000000000000000000')
=====>>>
enter
<__main__.foo object="" at="">
exit
name 'abcdefg' is not defined
00000000000000000000
用途またはメリット:
1.with文を使用する目的は、コードブロックをwithに入れて実行することであり、withが終了すると、自動的にクリーンアップ作業が完了し、手動で介入する必要がない
2.ファイル、ネットワーク接続、ロックなどのリソースを管理する必要があるプログラミング環境では、_exit__自動放出リソースをカスタマイズするメカニズムは、この問題に関係する必要はありません.これは大きな役に立ちます.