python--else语句

for

仅当for循环运行完毕时,才运行else块。

while

仅当while循环因为条件为假值而退出时,才运行else块

try

仅当try块没有异常抛出时才允许else块

with语句:简化try,finally模式,这种模式用于保证一段代码运行完毕后执行某项操作,即使那段代码由于异常,return语句或sys.exit()调用中止

也会执行指定的操作。finally子句的代码通常用于释放重要的资源,或者还原临时变更的状态。

with语句开始运行时,会在上下文管理器对象调用__enter__方法。

with语句运行结束后,会在上下文管理器对象调用__exit__方法

from mirror import LookingGlass
with LookingGlass() as what:
#上下文管理器LookingGlass();Python在上下文管理器上调用__enter__方法,把返回结果绑定在what上
        print('Alice,Kitty and Snowdrop')
        print(what)
class LookingGlass:
    def __enter__(self):
        import sys
        self.original_write=sys.stdout.write#存入实例属性,供后面使用
        sys.stdout.write=self.reverse_write#给sys.stdout.wirte打猴子补丁
        return 'JABBERWOCKY'
    def reverse_write(self,text):
         self.original_write(text[::-1])#反转内容
    
      
    def __exit__(self,exc_type,exc_value,traceback):
        import sys
        sys.stdout.wirte=self.original_write
        if exc_type is ZeroDivisionError:
            print('Please DO NOT divide by zero!')
            return True

 

posted @ 2020-08-25 14:53  猫七的blog  阅读(153)  评论(0编辑  收藏  举报