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
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
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