0

我是 python 的新手,当我注释 ('#') 以下代码的最后两行时出现缩进错误消息:

    try:
        return get_callable(callback), {}
#   except (ImportError, AttributeError), e:
#       raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st    r(e)))

有人可以帮忙吗?

4

3 回答 3

5

注释掉try/except时,将 a放在:if True: #前面try

    if True: #try:
        return get_callable(callback), {}
#   except (ImportError, AttributeError), e:
#       raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st    r(e)))

这使得语法正确,而不必消除内部块。您还可以在评论添加一个finally: pass块:except

    try:
        return get_callable(callback), {}
#   except (ImportError, AttributeError), e:
#       raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st    r(e)))
    finally:
        pass

您唯一的其他选择是也注释掉该try:行,删除该块的缩进:

#   try:
    return get_callable(callback), {}
#   except (ImportError, AttributeError), e:
#       raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st    r(e)))

如果没有or块来完成它,您不能将裸露留try:在原地。exceptfinally

于 2012-09-27T22:59:13.460 回答
4

您的代码在语法上不再有效。except 子句是 try 子句的必需伴侣。

于 2012-09-27T22:58:43.083 回答
2

如果没有另一个except语句,python 正在寻找一个 except 语句,而是可能会看到一个未缩进的行。

所以你可能会想,“为什么这是一个缩进错误?我只是缺少一个except,它与缩进没有任何关系。” 原因是 python “看到” a 后面没有缩进的行,try:并希望它缩进到try.

于 2012-09-27T22:59:10.367 回答