Rozdział 9 · Słuchaj mojego rozkazu!
is wady ==
Dwóch podobnych operatorów pyta o zupełnie różne rzeczy – i jest dokładnie jeden właściwy powód, by is użyć właśnie teraz.
Dwa różne pytania
== oraz is wyglądają podobnie, ale
pytają o zupełnie różne rzeczy:
==
„Czy wartości są równe?”
is
„Czy to ten sam obiekt?”
Głównym praktycznym zastosowaniem jest None
W zdecydowanej większości przypadków liczby, łańcuch znaków i zwykłe porównania ogólnie wymagają
Dokładnie tak ==. Właściwe i naprawdę ważne zastosowanie
is na tym etapie to sprawdzić None:
is_none.py
value = None
print(value is None) # True — właściwy sposób
print(value is not None) # False
Dlaczego nie value == None
Technicznie
value == None też działa w większości przypadków – ale is None jest uważany za bardziej poprawny styl, Python: jednoznacznie pyta "czy to dokładnie None?", zamiast "czy znaczenie jest równe czemuś, co zachowuje się jak None?". Zgódźmy się, że zawsze będziemy używać is None / is not None.Nie używaj is do liczb i łańcuch znaków
256 is 256 lub "a" is "a" mogą zachowywać się nieoczekiwanie — ich wynik zależy od wewnętrznych szczegółów implementacji Python, które nie są gwarantowane i mogą się różnić w zależności od sytuacji. To nie jest coś, czego trzeba się nauczyć teraz: aby porównywać wartości, zawsze używaj ==. Pomysł „porównanie po obiekcie” powróci szczegółowo w rozdziale o OOP.Praktyka: is kontra==
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji