Confirme com isinstance()
Nesta etapa, você aprenderá como usar a função isinstance() em Python para verificar se um objeto é uma instância de uma classe ou tipo específico. Esta é outra maneira de verificar o tipo de dado de uma variável, e pode ser especialmente útil ao trabalhar com herança e classes personalizadas.
Vamos continuar usando o arquivo string_examples.py com o qual você tem trabalhado. Adicionaremos algum código para demonstrar como isinstance() funciona.
A função isinstance() recebe dois argumentos: o objeto que você deseja verificar e a classe ou tipo que você deseja verificar. Ela retorna True se o objeto é uma instância da classe ou tipo especificado, e False caso contrário.
Adicione as seguintes linhas ao seu arquivo string_examples.py:
## Verificando com isinstance()
print(isinstance(string1, str))
print(isinstance(number, int))
print(isinstance(decimal, float))
print(isinstance(boolean, bool))
print(isinstance(string1, int))
Salve o arquivo. Agora, vamos executar o script usando o comando python no terminal:
python ~/project/string_examples.py
Você deve ver a seguinte saída:
Olá, LabEx!
Python é divertido
12345
!@#$%^
Esta é uma frase.
Esta é uma
string de múltiplas linhas.
Esta é outra
string de múltiplas linhas.
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
True
True
True
True
False
Como você pode ver, isinstance(string1, str) retorna True porque string1 é uma string. Da mesma forma, isinstance(number, int) retorna True porque number é um inteiro, e assim por diante. No entanto, isinstance(string1, int) retorna False porque string1 não é um inteiro.
isinstance() também pode ser usado com classes personalizadas. Por exemplo:
class MyClass:
pass
obj = MyClass()
print(isinstance(obj, MyClass))
Adicione estas linhas ao seu arquivo string_examples.py e execute-o novamente:
python ~/project/string_examples.py
Você deve ver a seguinte saída:
Olá, LabEx!
Python é divertido
12345
!@#$%^
Esta é uma frase.
Esta é uma
string de múltiplas linhas.
Esta é outra
string de múltiplas linhas.
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
True
True
True
True
False
True
Aqui, isinstance(obj, MyClass) retorna True porque obj é uma instância de MyClass.
Usar isinstance() é uma maneira poderosa de verificar o tipo de um objeto em Python, especialmente ao trabalhar com herança e classes personalizadas. Ele permite que você escreva um código mais robusto e flexível que pode lidar com diferentes tipos de dados corretamente.