неправильное поведение экземпляра?

Вот вывод из консоли отладки

self.functionList = [regression(2)]
self.functionList
Out[1]: [<regression at 0x2530370a2c8>]
type(self.functionList)
Out[2]: list
isinstance(type(self.functionList), list)
Out[3]: False
type(self.functionList) == list
Out[4]: True
import typing
isinstance(type(self.functionList), typing.List)
Out[16]: False

Я не понимаю, почему функция isinstance возвращает False, хотя переменная functionList явно является экземпляром типа list.

В чем проблема с поведением isinstance?


person Alok    schedule 11.10.2020    source источник
comment
isinstance(type(self.functionList), list) проверяет, является ли тип self.functionList экземпляром list. Только self.functionList сам является экземпляром list. isinstance(self.functionList, list) должно быть True.   -  person MisterMiyagi    schedule 11.10.2020
comment
Отвечает ли это на ваш вопрос? Как установить условное выражение в python на основе типы данных?   -  person MisterMiyagi    schedule 11.10.2020
comment
Благодарность! Это была довольно глупая ошибка с моей стороны.   -  person Alok    schedule 11.10.2020


Ответы (1)


Вы неправильно сравниваете. Попробуйте этот код.

import typing
isinstance(self.functionList, typing.List)

Для метода isinstance сравните объект с ожидаемым типом. Дополнительные сведения см. в документах.

person Mithilesh_Kunal    schedule 11.10.2020