相关疑难解决方法(0)

在python中使用try vs if

在测试变量有值时,是否有理由决定使用哪一个try或哪些if结构?

例如,有一个函数返回列表或不返回值.我想在处理之前检查结果.以下哪一项更可取,为什么?

result = function();
if (result):
    for r in result:
        #process items
Run Code Online (Sandbox Code Playgroud)

要么

result = function();
try:
    for r in result:
        #process items
except TypeError:
    pass;
Run Code Online (Sandbox Code Playgroud)

相关讨论:

检查Python中的成员是否存在

python

120
推荐指数
5
解决办法
5万
查看次数

Python如果vs try-except

我想知道为什么try-except比下面的程序中的if慢.

def tryway():
    try:
        while True:
            alist.pop()
    except IndexError:
        pass

def ifway():
    while True:
        if alist == []: 
            break
        else:
            alist.pop()
if __name__=='__main__':
    from timeit import Timer
    alist = range(1000)
    print "Testing Try"
    tr = Timer("tryway()","from __main__ import tryway")
    print tr.timeit()
    print "Testing If"
    ir = Timer("ifway()","from __main__ import ifway")
    print ir.timeit()
Run Code Online (Sandbox Code Playgroud)

我得到的结果很有趣.

Testing Try
2.91111302376
Testing If
0.30621099472
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么尝试这么慢?

python performance

25
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×2

performance ×1