@Timebird

Как вызвать функцию на основе двух функций?

Имеется функций несколько. В первой формируется первый массив, во второй -- второй массив. В третьей эти массивы перемножаются, получается новый третий массив. И как только, в четвертой функции, я хочу построить график зависимости первого массива от третьего, начинаются проблемы.
Код схематично вот такой:

def getarray1():
    #Получаю первый массив
    return array1
 
def getarray2():
    #Получаю второй массив
    return array2
 
def getarray3(array1, array2):
    #Перемножаю элементы первого и второго массивов, 
        #получаю третий массив.
    return array3
 
def buildgraph(array1, array3):
    plt.plot(array1, array3)
 
    plt.xlabel('x')
    plt.ylabel('y')
    plt.title('Title name')
    plt.savefig("test.png")
    plt.show()
 
getarray3(getarray1(), getarray2())
buildgraph(getarray1(), getarray3())


В итоге getarray1 вызывается два раза, а потом выбивается ошибка о том, что getarray3 требует параметры array1 и array2. В общем-то говоря: что неверно?
  • Вопрос задан
  • 281 просмотр
Решения вопроса 3
LeEnot
@LeEnot
Енот-андроид
Вы не понимаете элементарных принципов процедурного программирования.
Я бы советовал прочитать сию фундаментальную вещь: SICP, благо, издание имеется уже и на русском языке.
При желании легко гуглится PDF версия.
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
Ошибка в том что вы вызываете функцию требующую параметры без указания параметров.

может так надо:
buildgraph(getarray1(), getarray3(getarray1(), getarray2()))

или так
array3 = getarray3(getarray1(), getarray2())
buildgraph(getarray1(), array3)


или вообще так:
array1 = getarray1()
array2 = getarray2()
array3 = getarray3(array1, array2)
buildgraph(array1, array3)
Ответ написан
Комментировать
@nirvimel
x1, x2 = getarray1(), getarray2()
x3 = getarray3(x1, x2)
buildgraph(x1, x3)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы