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

        

猜你喜欢

转载自www.cnblogs.com/cxydnxs/p/12349208.html