python之上下文管理协议

class Open:

         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_type)

                   print(exc_val)

                   print(exc_tb)

                   return True

with Open('a.txt') as f:

        print(f)

        print(abc)

print('>>>')

 

-----------------------------------------------------------------

执行enter
<__main__.Open object at 0x000001874221F7F0>
执行exit
<class 'NameError'>
name 'abc' is not defined
<traceback object at 0x0000018742222CC8>
>>>

 

 

        

posted @ 2020-02-23 12:36  戴猛有话说  阅读(197)  评论(0)    收藏  举报