Sobes.tech
Middle

Ποια είναι η διαφορά μεταξύ is και == στην Python;

sobes.tech AI

Απάντηση από AI

Στην Python, ο τελεστής is ελέγχει αν δύο μεταβλητές δείχνουν στο ίδιο αντικείμενο στη μνήμη (δηλαδή, συγκρίνει την ταυτότητα των αντικειμένων). Ο τελεστής == ελέγχει την ισότητα των τιμών των αντικειμένων, καλώντας τη μέθοδο __eq__ και συγκρίνοντας το περιεχόμενο ή τη λογική της ισότητας.

Παράδειγμα:

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)  # True, επειδή το b αναφέρεται στο ίδιο αντικείμενο
print(a == b)  # True, οι τιμές ταιριάζουν

print(a is c)  # False, διαφορετικά αντικείμενα
print(a == c)  # True, οι λίστες έχουν ίδιες τιμές

Επομένως, το is είναι έλεγχος ταυτότητας (ένα αντικείμενο), και το == είναι έλεγχος ισότητας περιεχομένου.