"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como escolher entre `type()` e `isinstance()` do Python para verificação de tipo de objeto?

Como escolher entre `type()` e `isinstance()` do Python para verificação de tipo de objeto?

Publicado em 23/12/2024
Navegar:138

How to Choose Between Python's `type()` and `isinstance()` for Object Type Checking?

Como determinar o tipo de um objeto

Determinar o tipo de um objeto é crucial para garantir a consistência dos dados e executar as operações de acordo. Python fornece duas funções integradas para essa finalidade: type() e isinstance().

Usando type()

A função type() retorna o tipo exato de um objeto. Por exemplo:

>>> type([]) is list
True
>>> type({}) is dict
True
>>> type('') is str
True
>>> type(0) is int
True

Usando isinstance()

A função isinstance() verifica se um objeto é uma instância de um tipo específico, incluindo tipos herdados. Ao contrário de type(), ele suporta herança de tipo.

>>> isinstance(b, Test1)
True
>>> isinstance(b, Test2)
True
>>> isinstance(a, Test1)
True
>>> isinstance(a, Test2)
False
>>> isinstance([], list)
True
>>> isinstance({}, dict)
True

Escolhendo entre type() e isinstance()

Geralmente, isinstance() é preferido para verificar tipos de objetos, pois leva em consideração os tipos derivados. Type() é mais apropriado se você precisar do objeto de tipo exato por motivos específicos. Aqui está um exemplo onde você pode usar isinstance():

def print_object_type(obj):
  if isinstance(obj, int):
    print("Integer")
  elif isinstance(obj, float):
    print("Float")
  elif isinstance(obj, str):
    print("String")
  else:
    print("Unknown type")
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3