A função Python isinstance() é usada para verificar se o objeto fornecido é uma instância dessa classe. Se o objeto pertencer à classe, ele retornará True. Caso contrário, retorna False. Também retorna verdadeiro se a classe for uma subclasse.
A função isinstance() recebe dois argumentos object e classinfo e retorna True ou False. A assinatura da função é fornecida abaixo.
Sintaxe:
isinstance(object, classinfo)
Parâmetros
objeto: É um objeto do tipo string, int, float, long ou customizado.
informações de classe: Nome da classe.
Retornar
Ele retorna booleano True ou False.
Vamos ver alguns exemplos da função isinstance() para entender sua funcionalidade.
Exemplos de Isinstance() em Python:
Utilizamos a função isinstance() para verificar se várias variáveis são instâncias de seus tipos de dados ou classes separados.
1. Inteiro
Código
diferença entre árvore binária e árvore de pesquisa binária
# Check if an integer is an int n = 100 print(isinstance(n, int))
Saída:
True
2. Flutuar
Código
# Check if a float is a float pi = 3.14159 print(isinstance(pi, float))
Saída:
True
3. Corda
Código
matriz c string
# Check if a string is a string name = 'Johnny' print(isinstance(name, str))
Saída:
True
4. Lista
Código
# Check if a list is a list colours = ['blue', 'black', 'brown'] print(isinstance(colours, list))
Saída:
True
5. Dicionário
Código
# Check if a dictionary is a dict person = {'name': 'Ayan', 'age': 30} print(isinstance(person, dict))
Saída:
True
6. Tupla
Código
# Check if a tuple is a tuple point = (1, 5) print(isinstance(point, tuple))
Saída:
True
7. Definir
Código
# Check if a set is a set digits = {1, 2, 3, 4,5,6,7,8} print(isinstance(digits, set))
Saída:
True
8. Classe
Código
# Check if a custom class instance is an instance of that class class Bike: pass my_bike = Bike() print(isinstance(my_bike, Bike))
Saída:
memória virtual
True
Vamos ver mais alguns exemplos da função isinstance() para entender sua funcionalidade.
Exemplo de função Python isinstance() 1
Aqui, estamos passando objeto e classe para a função que retorna True apenas se o objeto pertencer à classe. Veja o exemplo abaixo.
Código
# Python isinstance() function example class Student: id = 101 name = 'John' def __init__(self, id, name): self.id=id self.name=name student = Student(1010,'John') lst = [ 12,34,5,6,767 ] # Calling function print(isinstance(student, Student)) # isinstance of Student class print(isinstance(lst, Student))
Saída:
True False
Exemplo de função Python isinstance() 2
isinstance() pode ser utilizado para verificar se um objeto é uma instância de uma classe que executa uma interface específica. Podemos caracterizar uma interface como uma classe que determina um conjunto de técnicas que diferentes classes executam.
variável global javascript
Código
# Python isinstance() function example class Animal: def speak(self): raise NotImplementedError class Dog(Animal): def speak(self): return 'Woof!' class Cat(Animal): def speak(self): return 'Meow!' def make_animal_speak(animal): if isinstance(animal, Animal): return animal.speak() else: raise ValueError('Object is not an Animal') my_dog = Dog() my_cat = Cat() print(make_animal_speak(my_dog)) print(make_animal_speak(my_cat))
Saída:
'Woof!' 'Meow!'
Exemplo de função Python isinstance() 3
Esta função também retorna True se o objeto for de subclasse e a classe for uma classe pai. Veja como funciona no exemplo abaixo.
Código
# Python isinstance() function example # Declaring variables class NumericList(list): def __init__(self): return None num = NumericList() # Calling function print(isinstance(num, NumericList)) # True print(isinstance(num, list)) # True
Saída:
True True
Conclusão:
Concluindo, a função isinstance() é uma função interna útil do Python que nos permite verificar se um objeto é uma instância de uma classe ou subclasse predefinida. Isso pode ser especialmente valioso ao trabalhar com código que inclui vários tipos de dados ou ao escrever bibliotecas ou APIs que precisam lidar com muitos tipos de entrada. Ao utilizar isinstance(), pode-se garantir que nosso código atue com precisão para diferentes tipos de entrada e seja mais vigoroso em geral.