【发布时间】:2013-01-13 10:49:12
【问题描述】:
可能重复:
Python try-else
我没有看到它的好处,至少基于我刚刚在 Dive Into Python 中读到的示例:
try:
from EasyDialogs import AskPassword
except ImportError:
getpass = default_getpass
else:
getpass = AskPassword
(http://www.diveintopython.net/file_handling/index.html)
为什么你不能用更短/更简单的方式达到同样的效果:
try:
from EasyDialogs import AskPassword
getpass = AskPassword
except ImportError:
getpass = default_getpass
我错过了什么?
【问题讨论】:
-
如果
getpass = AskPassword行本身可以引发ImportError怎么办? -
复制? Python try-else
-
这样做的问题是您最终将异常用于控制流而不是错误处理。
-
@Izkata 我认为您可以在不征求第二意见的情况下点击关闭按钮:P...
-
在这种情况下 else 子句很冗长,因为你可以这样做
from EasyDialogs import AskPassword as getpass
标签: python exception-handling coding-style idioms