2012-04-23 104 views
4

我发现TwistedSNMP库下面的代码:在python中加入语句之后可能执行语句吗?

try: 
    raise ImportError 
    import psyco 
except ImportError, err: 
    pass 
else: 
    from pysnmp.asn1 import base 
    psyco.bind(base.SimpleAsn1Object) psyco.bind(base.Asn1Object) 

源文件名:pysnmpproto.py, Line 42

是否有任何情况下,要么import psycoelse块永远不会被执行?

+4

它不叫空转,你知道。 – 2012-04-23 12:51:17

+1

加注只是为了“注释掉”下面的所有代码。 – ch3ka 2012-04-23 13:07:02

+0

@ ch3ka:也许吧。但是,它不是以一种相当离奇的方式来评论代码吗? – NPE 2012-04-23 13:08:52

回答

2

import psyco将永远不会到达,因为在上一行中引发的异常。 except条款将捕获该例外情况,在这种情况下,该条款无效。将永远不会达到else子句,因为只有在try子句无例外地执行时才能达到该子句。

简而言之,这段代码总是会引发一个异常,抓住它并且什么都不做。它应该被删除。

+0

想法一样,但想确认。感谢您的解释。 – Vikas 2012-04-23 13:41:08