Fonction type() de Python

Python3 内置函数Fonctions intégrées de Python3


type()est une fonction intégrée de Python utilisée pour obtenir le type d'un objet.

type()est l'une des fonctions les plus couramment utilisées en Python, qui nous aide à comprendre le type d'un objet, et est un outil très important dans les langages à typage dynamique.

Explication du terme: type 意为"类型",用于获取对象的类型信息。


Syntaxe de base et paramètres

Syntaxe

type(object)
type(name, bases, dict)

Description du paramètre

  • Paramètre object:
    • Type : Tout objet
    • Description : L'objet dont le type doit être obtenu.
  • Paramètres name, bases, dict:
    • Type : chaîne de caractères, tuple de classes, dictionnaire
    • Description : Permet de créer dynamiquement une classe.

Description de la fonction

  • Valeur de retour: Renvoie le type de l'objet (un objet type).

Exemples

Exemple 1 : Obtenir le type d'un objet

Exemple

# Obtenir le type des types de base
print(type(123))       # Sortie : <class 'int'>
print(type(3.14))      # Sortie : <class 'float'>
print(type("hello"))   # Sortie : <class 'str'>
print(type(True))      # Sortie : <class 'bool'>
print(type([1, 2, 3])) # Sortie : <class 'list'>
print(type({"a": 1})) # Sortie : <class 'dict'>
print(type((1, 2)))   # Sortie : <class 'tuple'>
print(type({1, 2}))   # Sortie : <class 'set'>

# Type de None
print(type(None))      # Sortie : <class 'NoneType'>

Sortie attendue :

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'dict'>
<class 'tuple'>
<class 'set'>
<class 'NoneType'>

Analyse du code :

  1. type()Renvoie l'objet type de l'objet.
  2. Chaque type est lui-même aussi une instance de la classe type.

Exemple 2 : Comparer les types

Exemple

# Comparaison directe
value = 42
print(type(value) == int)   # Sortie : True
print(type(value) == str)   # Sortie : False

# Utilisation de isinstance (recommandé)
print(isinstance(42, int))        # Sortie : True
print(isinstance("hello", str))  # Sortie : True
print(isinstance(42, (int, float)))  # Sortie : True

# Vérifier les classes personnalisées
class Dog:
    pass

class Cat:
    pass

dog = Dog()
print(type(dog) == Dog)    # Sortie : True
print(type(dog) == Cat)    # Sortie : False
print(isinstance(dog, Dog)) # Sortie : True

Sortie attendue :

True
False
True
True
True
True
False
True

Analyse du code :

  • Vous pouvez utilisertype() ==pour une comparaison précise des types.
  • Mais il est recommandé d'utiliserisinstance(), car il prend en charge l'héritage.

Exemple 3 : Créer une classe dynamiquement

Exemple

# Créer une classe dynamiquement avec type()
Person = type("Person", (), {
    "name": "Unknown",
    "age": 0,
    "greet": lambda self: f"Hello, I am {self.name}"
})

# Utiliser la classe créée dynamiquement
p = Person()
p.name = "Tom"
print(p.name)         # Sortie: Tom
print(p.greet())      # Sortie : Hello, I am Tom

# Créer une classe avec héritage
class Animal:
    def speak(self):
        return "..."

class Dog(Animal):
    def speak(self):
        return "Ouaf!"

DogClass = type("DogClass", (Animal,), {
    "speak": lambda self: "Woof!"
})

dog = DogClass()
print(dog.speak())  # Sortie : Woof!
print(isinstance(dog, Animal))  # Sortie : True

Sortie attendue :

La création dynamique de classes est rarement utilisée dans la programmation réelle, mais comprendre cela est important pour la programmation des métaclasses.

type()est l'une des fonctions les plus élémentaires et importantes de Python.


Python3 内置函数Fonctions intégrées de Python3


Autres extensions