Python: isinstance () 和 type ()

Uno, función isinstance ()

La función isinstance () es una función incorporada de Python, que determina si un objeto es una determinada clase o subclase, y devuelve Verdadero o Falso

语法 :
isinstance (object, classinfo) -> bool
Devuelve si un objeto es una instancia de una clase o de una subclase de la misma.

  • objeto de instancia de objeto.
  • classinfo: pueden ser nombres de clase directos o indirectos, tipos básicos o tuplas compuestas por ellos.
    classinfo puede ser: int, float, bool, complex, str (no se puede escribir una cadena), list, dict, set, tuple
    Inserte la descripción de la imagen aquí

Dos, función type ()

La función type () es una función incorporada de Python para obtener el tipo de objeto pasado

type (object_or_name, bases, dict)
type (objeto) -> el tipo del objeto
tipo (nombre, bases, dict) -> un nuevo tipo

En tercer lugar, la diferencia entre isinstance () y type ()

1. El tipo solo recibe un parámetro, que no solo puede juzgar si la variable pertenece a un cierto tipo, sino que también obtiene el tipo de la variable de parámetro desconocida; mientras que isinstance solo puede juzgar si pertenece a un cierto tipo conocido, y no puede directamente obtener lo desconocido pertenece a la variable. Tipo
Inserte la descripción de la imagen aquí
2, isinstance puede juzgar que el objeto de instancia de subclase pertenece a la clase principal; y el tipo juzga que el objeto de instancia de subclase es diferente del tipo de clase principal

class A:
    pass

class B(A):
    pass

print(isinstance(A(), A))  # True
print(type(A()) == A)  # True
print(isinstance(B(), A))  # True
print(type(B()) == A)  # False

En resumen, los escenarios de aplicación de isinstance y type son diferentes:
-type se usa principalmente para obtener el tipo de variables desconocidas
-isinstance se usa principalmente para determinar si la clase A hereda de la clase B

Supongo que te gusta

Origin blog.csdn.net/weixin_47008635/article/details/115047836
Recomendado
Clasificación