Предположим, у вас есть следующий код для определения этой простой функции:
def a(x,y,b):
z=[x,y]
c=b*2
return c
Я хочу вызвать эту функцию со значением z[0]
в качестве входных данных для параметра b
. Если я попытаюсь вызвать функцию следующим образом:
a(x,y,z[0])
, я получу сообщение об ошибке, поскольку переменная 'z' определена внутри функции и не существует до ее запуска.
Я думал, что при вызове функции python просто заменит вставленные входные данные относительным параметром внутри функции, чтобы выполнить желаемое вычисление, независимо от предварительного существования входной переменной. Я имею в виду, что в моей функции, например, если я вставляю в качестве входных данных z[0]
, я ожидаю, что python просто принимает цифры z [0] и копирует их в функцию вместо b
и выполняет умножение, взяв первый элемент массива z
.
Я делаю пошаговый пример с желаемым выходом функции, чтобы прояснить вопрос: после определения вышеописанной функции я вызываю ее с этими входами
a(2,3,z[0])
вот шаги выполнения функции:
1) вычисляет массив z=[2,3]
2) вычисляет c=z[0]*2
ie c=2*2
3) возвращает c=4
Шаг номер 2), однако, не выполняется, поскольку переменная z
создается внутри функции. Я спрашиваю, есть ли способ заставить функцию «копировать» входные цифры z[0]
внутри функции вместо параметра b
во время выполнения самой функции, чтобы python не учитывал z[0]
как несуществующая переменная, а как простой фрагмент кода для замены b на.