Найти - Пользователи
Полная версия: Откуда берутся значения для х?
Начало » Python для новичков » Откуда берутся значения для х?
1
Dolinsk
Здравствуйте, поиском не нашел, может не знаю как правильно искать.
Дан такой пример.
 
def func(selector):
if selector < 0:
def func1(x):
return x*x
return func1
else:
def func2(x):
return x*x*x
return func2

def oper(L, function):
res = [function(k) for k in L]
return res

dd=[2,4,10]
print oper(dd, func(-1))
Результат выполнения 4, 16, 100
Не могу понять откуда func1 и func2 берет х. И вообще как сохраняется selector = -1?
Я думаю, что в строке
res = [function(k) for k in L]
должна вызываться func с числами из dd.
То есть вот так:
func(2)
func(4)
func(10)
Но это должно влиять только на selector.
Budulianin
Код в тегах
Budulianin
Dolinsk
Не могу понять откуда func1 и func2 берет х.
[function(k) for k in L]

Dolinsk
И вообще как сохраняется selector = -1
func(-1)
Возвращает func1 и функция oper использует её.
Dolinsk
Budulianin спасибо за помощь.
Но я полагаю, что function(k) на первой итерации выглядит как func(2), то есть selector=2 и все.
Budulianin
Dolinsk
Но я полагаю, что function(k) на первой итерации выглядит как func(2), то есть selector=2 и все.

func(-1)
возвращает функцию func1, после этого она прекращает работу
и соответственно переменная selector никак не участвует в
res = [function(k) for k in L]

Прочитай
Dolinsk
Нет такой статьи, ошибочная ссылка
Budulianin
print oper(dd, func(-1))

Последовательность действий такая:
вычисляется func(-1), она возвращает func1
далее вычисляется oper с аргументами dd и func1, она возвращает список 4, 16, 100
далее инструкция print выводит тебе в stdout результат oper.

Dolinsk
Нет такой статьи, ошибочная ссылка
Теперь есть
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB