Introduction
L'opérateur is en Python est utilisé pour vérifier si deux variables se réfèrent au même objet en mémoire. Cela est différent de l'opérateur ==, qui vérifie si deux variables ont la même valeur. Dans ce laboratoire, nous allons explorer comment l'opérateur is fonctionne et comment il peut être utile en programmation Python. Il s'agit d'un concept important à comprendre, en particulier lorsqu'on travaille avec des objets mutables comme les listes et les dictionnaires. Dans ce laboratoire, nous allons explorer l'utilisation de l'opérateur is en Python avec des exemples simples et complexes, et voir comment il peut être utilisé pour écrire du code efficace et fiable.
Utilisation de base
Dans cette étape, nous allons commencer par l'utilisation la plus basique de l'opérateur is.
- Ouvrez l'interpréteur Python dans le terminal.
python3
- Définissez deux variables,
aetb, et attribuez la même valeur à chacune d'elles.
a = "Hello"
b = "Hello"
- Affichez l'adresse mémoire de
aetbà l'aide de la fonctionid().
print(id(a))
print(id(b))
- Utilisez l'opérateur
ispour vérifier siaetbse réfèrent au même objet.
print(a is b)
La sortie du code ci-dessus devrait être True, car a et b se réfèrent au même objet en mémoire.
Objets immuables vs objets mutables
Dans cette étape, nous allons explorer le comportement de l'opérateur is avec des objets immuables et mutables.
- Définissez deux variables,
cetd, et attribuez-lui une liste vide[].
c = []
d = []
- Affichez l'adresse mémoire de
cetdà l'aide de la fonctionid().
print(id(c))
print(id(d))
- Utilisez l'opérateur
ispour vérifier sicetdse réfèrent au même objet.
print(c is d)
La sortie du code ci-dessus devrait être False, car c et d sont des objets mutables et ne sont pas le même objet en mémoire.
- Maintenant, définissez deux variables,
eetf, et attribuez-lui une valeur entière.
e = 10
f = 10
- Affichez l'adresse mémoire de
eetfà l'aide de la fonctionid().
print(id(e))
print(id(f))
- Utilisez l'opérateur
ispour vérifier sieetfse réfèrent au même objet.
print(e is f)
La sortie du code ci-dessus devrait être True, car e et f sont des objets immuables et partagent le même objet en mémoire.
Paramètres de fonction
Dans cette étape, nous allons explorer comment l'opérateur is peut être utilisé avec les paramètres de fonction.
- Définissez une fonction
my_function()qui prend deux paramètres,xety.
def my_function(x, y):
print(x is y)
- Appelez la fonction
my_function()deux fois, une fois avec des objets immuables et une fois avec des objets mutables.
my_function(10, 10)
my_function([], [])
La sortie de la première appel devrait être True et la sortie de la seconde appel devrait être False.
Utilisation avancée
Dans cette étape, nous allons explorer certaines utilisations avancées de l'opérateur is.
- Définissez une classe
MyClassavec un attributvalue.
class MyClass:
def __init__(self, value):
self.value = value
- Définissez deux instances de la classe
MyClass,obj1etobj2, avec la mêmevalue.
obj1 = MyClass("Hello")
obj2 = MyClass("Hello")
- Affichez l'adresse mémoire de
obj1.valueetobj2.valueà l'aide de la fonctionid().
print(id(obj1.value))
print(id(obj2.value))
- Utilisez l'opérateur
ispour vérifier siobj1.valueetobj2.valuese réfèrent au même objet.
print(obj1.value is obj2.value)
La sortie du code ci-dessus devrait être True, car l'attribut value est un objet immuable et les deux instances partagent le même objet en mémoire.
- Maintenant, définissez deux instances de la classe
MyClass,obj3etobj4, avec un objet mutable comme leurvalue.
obj3 = MyClass([])
obj4 = MyClass([])
- Affichez l'adresse mémoire de
obj3.valueetobj4.valueà l'aide de la fonctionid().
print(id(obj3.value))
print(id(obj4.value))
- Utilisez l'opérateur
ispour vérifier siobj3.valueetobj4.valuese réfèrent au même objet.
print(obj3.value is obj4.value)
La sortie du code ci-dessus devrait être False, car l'attribut value est un objet mutable et les deux instances ne partagent pas le même objet en mémoire.
Résumé
Dans ce laboratoire, nous avons appris à connaître l'opérateur is en Python et la manière dont il peut être utilisé pour vérifier si deux variables se réfèrent au même objet en mémoire. Nous avons exploré le comportement de l'opérateur is avec des objets immuables et mutables, des paramètres de fonction et des instances de classe. En comprenant l'opérateur is, nous pouvons écrire du code Python plus efficace et fiable.



