Fonction type() de Python
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'>
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 :
type()Renvoie l'objet type de l'objet.- 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
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 utiliser
type() ==pour une comparaison précise des types. - Mais il est recommandé d'utiliser
isinstance(), 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
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.
Fonctions intégrées de Python3
Autres extensions