How to determine if a given object is an instance of a buil-in type/class

6 wyświetleń
Przejdź do pierwszej nieodczytanej wiadomości

German Larrain

nieprzeczytany,
22 lip 2013, 14:57:0522.07.2013
do pytho...@googlegroups.com
Si bien en general en Python no es correcto andar preguntando mucho sobre los tipos de los objetos, en algún caso puede ser necesario saber si un objeco es una instancia de una clase built-in de Python.

Me cabeceé un rato para dar con la forma correcta. Creo que es: obj.__class__.__module__ == '__builtin__', y como función:

def is_builtin_class_instance(obj):
"""Return whether ``obj`` is an instance of a buit-in class.

.. warning::
  If ``obj`` is a class and not an instance, no matter if that class is
  built-in or not, True will be returned since a class is also an object,
  an instance of ``type``, i.e. ``AnyClass.__class__`` is ``type``.

:param obj:
:return: True is ``obj``'s class module is ``'__builtin__'``

"""
return obj.__class__.__module__ == '__builtin__'

Lo postié en una vieja pregunta de SO http://stackoverflow.com/a/17795199/556413
Odpowiedz wszystkim
Odpowiedz autorowi
Przekaż
Nowe wiadomości: 0