Suponha que você tenha uma lista de itens, que são todas instâncias de alguma classe.
Por exemplo:
>>>result
[<DjangoProject.itemModel.SomeProperty bobject at 0xaeb0bcc>, <DjangoProject.itemModel.SomeProperty at 0xae8a6ac>, <DjangoProject.itemModel.SomeProperty object at 0xaf4a50c>]
Verificar se esses itens podem ser feitos com isinstace
, no entanto, fazer o
seguinte produzirá um resultado indesejado:
>>>isinstace(result, DjangoProject.itemModel.SomeProperty)
Isso porque o resultado é a list
. OK, então podemos fazer:
>>> check = []
>>> for item in result:
>>> check.append(isinstace(item, DjangoProject.itemModel.SomeProperty))
Mas Python é muito mais expressivo, e podemos usar funções lambda e alguma
programação funcional para isso:
>>> map(lambda x: isinstance(x, DjangoProject.itemModel.SomeProperty), result)
[True, True, True]
E ainda mais legal é isso:
>>>all(map(lambda x: isinstance(x, DjangoProject.itemModel.SomeProperty), result))
True