很抱歉有多个帖子,我确实环顾四周,除了 try 方法之外找不到任何东西,这在某些情况下似乎很有用,只是不是我的。
我正在寻找的是一种跳过错误的方法,因此控制台中没有显示并且没有停止脚本,只是一种绕过它们的方法。
IE;
1. call a list
2. If list does not exist
3. create the list
很抱歉有多个帖子,我确实环顾四周,除了 try 方法之外找不到任何东西,这在某些情况下似乎很有用,只是不是我的。
我正在寻找的是一种跳过错误的方法,因此控制台中没有显示并且没有停止脚本,只是一种绕过它们的方法。
IE;
1. call a list
2. If list does not exist
3. create the list
在 Python 中,这是通过try...except
. 在您的情况下,您可能想抓住NameError
.
try:
L[0]
except NameError:
L = ["Example",2]
L[0]
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 通常很好,如果它是其他用户应该使用的应用程序,我通常倾向于显式错误处理。