1. Explicación:
La función isinstance() es una función incorporada de Python similar a la función type(), que se utiliza para determinar si una función es de un tipo conocido.
2. Uso:
isinstance ( objeto , información de clase)
- objeto: objeto de instancia.
- classinfo: puede ser un nombre de clase directo o indirecto, un tipo básico o una tupla que consta de ellos.
Valor de retorno: si el tipo de parámetro uno es coherente con el tipo de parámetro dos, devuelve Verdadero; de lo contrario, devuelve Falso.
3. Ejemplo:
a = 2.0
print(isinstance(a,int))
print(isinstance(a,float))
print(isinstance(a,(str, int, list, float)))
================================================
False # a是float类型,并非int类型,结果返回False
True # a是float类型,结果返回True
True # 是元组中的一个,结果返回 True
4. La diferencia entre isinstance() y type()
- isinstance() considerará que la subclase es un tipo de clase principal y considerará la relación de herencia.
- type() no considera que la subclase sea un tipo de clase principal y no considera la relación de herencia.
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
En este momento, encontrará que cuando crea un objeto A y luego crea un objeto B que hereda el objeto A, y usa isinstance () y type () para comparar A () y A, ya que sus tipos son los mismos, ambos son devueltos.Cierto. El objeto B hereda del objeto A. Cuando se usa la función isinstance() para comparar B() y A, dado que se considera la relación de herencia, se devuelve True. Cuando se usa la función type() para comparar B() y A, No considerará de dónde hereda B(), por lo que devuelve False.
Si desea determinar si dos tipos son iguales, se recomienda utilizar isinstance().