2

很抱歉有多个帖子,我确实环顾四周,除了 try 方法之外找不到任何东西,这在某些情况下似乎很有用,只是不是我的。

我正在寻找的是一种跳过错误的方法,因此控制台中没有显示并且没有停止脚本,只是一种绕过它们的方法。

IE;

1. call a list
2. If list does not exist
3.     create the list
4

2 回答 2

5

在 Python 中,这是通过try...except. 在您的情况下,您可能想抓住NameError.

try:
    L[0]
except NameError:
    L = ["Example",2]
    L[0]
于 2013-01-06T16:58:41.047 回答
1

try..except当然是一种方法。如果您尝试在函数中测试参数,那么使用默认值定义该参数None并像这样进行测试通常很有用:

def myfunc(..., mylist=None):
    if mylist is None:
        mylist = []

(另见不是 Python 中的无测试

如果你想知道列表是否为空,只需输入

if mylist:
    print mylist
else:
    print "empty list"

这些类型的测试和try..except概念之间的主要区别在于,在我的代码示例中,您必须确保定义了变量(例如作为函数参数)。否则会产生异常。这正是try..except构造优雅地处理的内容。

最后它可能是哲学的(我只能希望我不会因此而违反 python 的禅宗):如果你知道哪些变量可能是未定义的,那么它可以提高你的代码的可读性和弹性,如果你编写明确的错误处理。有人可能会说“让它发生”并仅在必要时进行修复更为pythonic。如果您正在编写“快速破解”,解决方案 2 通常很好,如果它是其他用户应该使用的应用程序,我通常倾向于显式错误处理。

于 2013-01-06T17:47:16.840 回答