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 είναι έλεγχος ταυτότητας (ένα αντικείμενο), και το == είναι έλεγχος ισότητας περιεχομένου.