Я полный новичок на Python и натолкнулся на часть кода, которая меня смущает.
ts, pkt2 = capPort2.wait(1, 45)[0]
Предыдущая строка меня смущает. Я понимаю вызов функции wait
с двумя параметрами, но что означает [0]
или делает?
Это означает извлечение первого элемента в возвращаемом списком/кортежем функцией.
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'
Это означает, что возвращаемое значение функции wait является либо списком, либо кортежем, а 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
Ах, я думаю, этот вопрос ответил мне недавно, но я хотел бы расширить ответ:
Этот вызов:
var value = getUrlVars()["logout_url"];
приведет к установке переменной в значение пары имя-значение 'logout_url', которая возвращается из вызова функции в 'getUrlVars()', правильно? Таким образом, вам не нужно использовать только числовой индекс, он может быть использован для хэш/ассоциативных массивов/словаря /etc результатов функции.
Итак, если это функция getUrlVars:
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace (/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
}
);
return vars;
}
Которые возвращают пары ключевых значений (из входного URL-адреса "" 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