Определите, является ли переменная Python экземпляром встроенного типа

Мне нужно определить, является ли данная переменная Python экземпляром собственного типа: str , int , float , bool , list , dict и т. Д. Есть ли элегантный способ сделать это?

Или это единственный способ:

 if myvar in (str, int, float, bool): # do something 

2 Solutions collect form web for “Определите, является ли переменная Python экземпляром встроенного типа”

Лучший способ добиться этого – собрать типы в списке кортежей, называемых primitiveTypes и:

 if isinstance(myvar, primitiveTypes): ... 

Модуль types содержит коллекции всех важных типов, которые могут помочь в создании списка / кортежа.

Работает с Python 2.2

Вы, похоже, заинтересованы в том, чтобы simplejson будет обрабатывать ваши типы. Это делается тривиально

 try: json.dumps( object ) except TypeError: print "Can't convert", object 

Что более надежно, чем пытаться угадать, какие типы обработки JSON обрабатываются.

  • Python экземпляры и атрибуты: это ошибка, или я понял, что это совершенно неправильно?
  • Почему строка, возвращаемая из экземпляра класса, сохраняет тип NoneType, хотя IDLE говорит, что это строка?
  • Как создать отдельные экземпляры класса в Python?
  • Как избежать нескольких экземпляров программы?
  • Как python обрабатывает экземпляр объекта в цикле 'for'
  • Почему переменная экземпляра ведет себя как переменная класса в Python?
  • Почему type (classInstance) возвращает экземпляр?
  • python: доступ к переменной экземпляра с использованием имени, содержащего переменную
  • Python - лучший язык программирования в мире.