函数调用后的方括号

时间:2011-06-21 08:13:14

标签: python

我是Python的新手,并且遇到了一段令我困惑的代码。

ts, pkt2 = capPort2.wait(1, 45)[0]

上一行令我困惑。我理解使用两个参数调用函数wait,但[0]的含义是什么?

3 个答案:

答案 0 :(得分:5)

这意味着通过函数提取列表/元组返回中的第一项。

In [1]: "this is a long sentence".split()
Out[1]: ['this', 'is', 'a', 'long', 'sentence']

In [2]: "this is a long sentence".split()[0]
Out[2]: 'this'

答案 1 :(得分:1)

这意味着wait函数的返回值是list或tuple,而0是来自此输出的元素的索引。例如:

def func(numericValue):
    return list(str(numericValue))

res = func(1000)
res[0] - > 1

或者:

def convert(value, to_type):
    #do something
    return resuls, convertedValue

res = convert(1100, str)
res[0] - > True

答案 2 :(得分:0)

啊,我觉得这个问题最近回答了我自己,但我想解释一下:

这个电话:

var value = getUrlVars()["logout_url"];

最终会将变量设置为从函数调用返回到'getUrlVars()'的'logout_url'名称 - 值对的值,对吗?因此,您不必仅使用数字索引,它可以用于函数的哈希/关联数组/字典/等结果。

所以如果这是'getUrlVars'函数:

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace (/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
            vars[key] = value;
        }
    );
    return vars;
}

返回键值对(来自输入网址“”http://a.place.com/page.html?name=fred&place=b3&logout_url=some.thing.net/go/here/file.html“),例如:

'name'='fred',
'place'='b3',
'logout_url'='some.thing.net/go/here/file.html'         <-- URL encoded, most likely

所以我上面的函数调用将返回“some.thing.net/go/here/file.html”,而其中一个看起来像这样:

getUrlVars()["name"]

将返回:

"fred"

我想。 :)

- C