Определить тип объекта? - PullRequest
1614 голосов
/ 09 февраля 2010

Есть ли простой способ определить, является ли переменная списком, словарем или чем-то еще? Я возвращаю объект, который может быть любого типа, и я должен быть в состоянии определить разницу.

Ответы [ 12 ]

0 голосов
/ 17 июня 2019

В общем случае вы можете извлечь строку из объекта с именем класса,

str_class = object.__class__.__name__

и используя его для сравнения,

if str_class == 'dict':
    # blablabla..
elif str_class == 'customclass':
    # blebleble..
0 голосов
/ 25 мая 2019

type() - лучшее решение, чем isinstance(), особенно для booleans:

True и False - это просто ключевые слова, которые означают 1 и 0 в Python. Таким образом,

isinstance(True, int)

и

isinstance(False, int)

оба возвращают True. Оба логических значения являются экземпляром целого числа. type(), однако, более умный:

type(True) == int

возвращает False.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...