До сих пор я обнаружил, что эти команды для правильной работы должны быть в разных сценариях и выполняться в определенном порядке. Итак, вот как это работает:
"scripts": {
"aaa": "set TMP=test && npm run bbb",
"bbb": "echo %TMP%"
}
npm run aaa
вывод: test
Но этот не будет работать:
"scripts": {
"aaa": "set TMP=test",
"bbb": "npm run aaa && echo %TMP%"
}
npm run bbb
вывод: <just empty>
Похоже, что для поиска созданной переменной требуются две отдельные команды npm run
: переменная должна быть создана в первый npm run
и может быть найден во втором.
printa(*cord())
*
вот оператор расширения аргумента... хорошо я забываю то, чем это технически называют, но в этом контексте это берет список или кортеж и разворачивает его, таким образом, функция рассматривает каждый элемент списка/кортежа как отдельный аргумент.
Это - в основном реверс *
Вы могли бы использовать для получения всех аргументов неключевого слова в функциональном определении:
def fn(*args):
# args is now a tuple of the non-keyworded arguments
print args
fn(1, 2, 3, 4, 5)
печать (1, 2, 3, 4, 5)
fn(*[1, 2, 3, 4, 5])
делает то же.
Попробуйте это:
>>> def cord():
... return (1, 1)
...
>>> def printa(y, x):
... print a[y][x]
...
>>> a=[[1,2],[3,4]]
>>> printa(*cord())
4
Звезда в основном говорит, "используют элементы этого набора как позиционные параметры". Можно сделать то же с dict для аргументов ключевого слова с помощью двух звезд:
>>> a = {'a' : 2, 'b' : 3}
>>> def foo(a, b):
... print a, b
...
>>> foo(**a)
2 3
На самом деле Python действительно не возвращает несколько значений, он возвращает одно значение, которое может быть несколькими значениями, упакованными в кортеж. Что означает, что необходимо "распаковать" возвращенное значение, чтобы иметь кратные числа. Оператор как
x,y = cord()
делает это, но непосредственно использование возвращаемого значения, когда Вы выполнили
printa(cord())
не делает, вот почему необходимо использовать звездочку. Возможно, хороший термин для него мог бы быть "неявной распаковкой кортежа" или "распаковкой кортежа без присвоения".