Ошибка при использовании scipy brute: объект типа «slice» не имеет len()Python

Программы на Python
Anonymous
Ошибка при использовании scipy brute: объект типа «slice» не имеет len()

Сообщение Anonymous »

Я публикую этот вопрос-ответ, поскольку эта деталь была тонкой, и я нашел решение только из-за определенного способа, которым кто-то определил свой объект среза в ответе на переполнение стека, который может не появиться, если кто-то будет искать эту конкретную ошибку.
Мой исходный код:

Код: Выделить всё

from scipy.optimize import brute

f = lambda x : x
ranges = ( slice(-10,10,1) )
result = brute( f, ranges, full_output=True, finish=optimize.fmin )
print( result[1] )
Ошибка, как в заголовке вопроса:

Код: Выделить всё

TypeError: object of type 'slice' has no len()
Новый код просто содержит еще одну запятую в диапазонах, определяющих кортеж

Код: Выделить всё

from scipy.optimize import brute

f = lambda x : x
ranges = ( slice(-10,10,1), )
result = brute( f, ranges, full_output=True, finish=optimize.fmin )
print( result[1] )
Выход:

Код: Выделить всё

-6.33825300114115e+29
А ответ на вопрос, почему результат был намного меньше -10, содержится в другом сообщении Stack Overflow.

Подробнее здесь: https://stackoverflow.com/questions/786 ... has-no-len

Вернуться в «Python»