Fonction id() de Python
Fonctions intégrées de Python3
id()C'est une fonction intégrée de Python utilisée pour obtenir l'identifiant unique d'un objet.
En Python, chaque objet possède un identifiant entier unique, qui est unique et constant pendant toute la durée de vie de l'objet.id()Il renvoie cet identifiant, qui correspond généralement à l'adresse mémoire de l'objet.
Définition du mot: idOuiidentifierAbréviation de (identifiant).
Syntaxe de base et paramètres
Format de syntaxe
id(object)
Description du paramètre
- Paramètre object:
- Type : Tout objet
- Description : L'objet dont l'identifiant doit être obtenu.
Description de la fonction
- Valeur de retour: Renvoie un entier représentant l'identifiant unique de l'objet.
- Caractéristiques: L'id reste constant tout au long de la durée de vie de l'objet.
Exemples
Exemple 1 : Utilisation de base
Exemple
# Afficher l'id d'un entier
a = 10
print(id(a)) # Sortie : un entier, par ex. 4302400000
# Afficher l'id d'une chaîne
s = "hello"
print(id(s)) # Sortie : un entier
# Afficher l'id d'une liste
lst = [1, 2, 3]
print(id(lst)) # Sortie : un entier
a = 10
print(id(a)) # Sortie : un entier, par ex. 4302400000
# Afficher l'id d'une chaîne
s = "hello"
print(id(s)) # Sortie : un entier
# Afficher l'id d'une liste
lst = [1, 2, 3]
print(id(lst)) # Sortie : un entier
Sortie attendue :
Renvoie l'identifiant unique de l'objet (un entier).
Analyse du code :
- Chaque objet a un id unique.
- Différents objets ont généralement des id différents.
Exemple 2 : Vérifier l'identité d'un objet
Exemple
# Même objet référencé plusieurs fois
a = [1, 2, 3]
b = a
print(id(a) == id(b)) # Sortie : True (a et b pointent vers le même objet)
# Copier un objet
a = [1, 2, 3]
b = a.copy()
print(id(a) == id(b)) # Sortie : False (a et b sont des objets différents)
# Mise en cache des entiers (petits entiers)
a = 256
b = 256
print(id(a) == id(b)) # Sortie : True (les petits entiers sont mis en cache)
a = 257
b = 257
print(id(a) == id(b)) # Sortie : False (les grands entiers ne sont pas mis en cache)
a = [1, 2, 3]
b = a
print(id(a) == id(b)) # Sortie : True (a et b pointent vers le même objet)
# Copier un objet
a = [1, 2, 3]
b = a.copy()
print(id(a) == id(b)) # Sortie : False (a et b sont des objets différents)
# Mise en cache des entiers (petits entiers)
a = 256
b = 256
print(id(a) == id(b)) # Sortie : True (les petits entiers sont mis en cache)
a = 257
b = 257
print(id(a) == id(b)) # Sortie : False (les grands entiers ne sont pas mis en cache)
Sortie attendue :
True False True False
Analyse du code :
- Utiliser
==Comparer les id permet de déterminer s'il s'agit du même objet. - Python met en cache les petits entiers (-5 à 256), donc des variables ayant la même valeur peuvent partager le même id.
Exemple 3 : Application pratique
Exemple
# Vérifier s'il s'agit du même objet
def check_same_object(a, b):
return id(a) == id(b)
# Test
list1 = [1, 2, 3]
list2 = list1
list3 = [1, 2, 3]
print(check_same_object(list1, list2)) # Sortie : True
print(check_same_object(list1, list3)) # Sortie : False
# Utiliser comme clé de dictionnaire (bien que peu courant)
d = {}
obj = object()
d[obj] = "value"
print(d[obj]) # Sortie : value
# Afficher les objets pendant le débogage
class Person:
pass
p = Person()
print(f"ID de l'objet : {id(p)}")
print(f"ID de la classe : {id(Person)}")
def check_same_object(a, b):
return id(a) == id(b)
# Test
list1 = [1, 2, 3]
list2 = list1
list3 = [1, 2, 3]
print(check_same_object(list1, list2)) # Sortie : True
print(check_same_object(list1, list3)) # Sortie : False
# Utiliser comme clé de dictionnaire (bien que peu courant)
d = {}
obj = object()
d[obj] = "value"
print(d[obj]) # Sortie : value
# Afficher les objets pendant le débogage
class Person:
pass
p = Person()
print(f"ID de l'objet : {id(p)}")
print(f"ID de la classe : {id(Person)}")
Sortie attendue :
True False value 对象 id: ... 类 id: ...
id()Principalement utilisé pour le débogage, la vérification de l'identité des objets, la compréhension de la gestion de la mémoire de Python et d'autres aspects.
Fonctions intégrées de Python3
Autres extensions