Junior
Τι είναι το self στην Python;
sobes.tech AI
Απάντηση από AI
Το self στην Python είναι το πρώτο όρισμα μιας μεθόδου στιγμιότυπου μιας κλάσης. Αντιπροσωπεύει το ίδιο το στιγμιότυπο του αντικειμένου, μέσω του οποίου καλείται η μέθοδος.
Βασικά χαρακτηριστικά του self:
- Αναφορά στο στιγμιότυπο: Επιτρέπει την πρόσβαση σε χαρακτηριστικά και την κλήση άλλων μεθόδων αυτού του συγκεκριμένου στιγμιότυπου.
- Σύμβαση ονοματοδοσίας: Το
selfείναι μια παραδοσιακή, αλλά όχι υποχρεωτική ονομασία. Μπορεί να χρησιμοποιηθεί οποιοδήποτε άλλο όνομα, αλλά τοselfείναι το ευρέως αποδεκτό πρότυπο που καθιστά τον κώδικα πιο ευανάγνωστο. - Μεταδίδεται αυτόματα: Κατά την κλήση μιας μεθόδου στιγμιότυπου, η Python μεταδίδει αυτόματα μια αναφορά στο καλούν στιγμιότυπο ως πρώτο όρισμα (
self). Δεν χρειάζεται να το ορίσετε κατά την κλήση. - Απουσιάζει σε στατικές και μεθόδους κλάσης: Στις στατικές μεθόδους (
@staticmethod) τοselfαπουσιάζει, καθώς δεν σχετίζονται με ένα συγκεκριμένο στιγμιότυπο. Στις μεθόδους κλάσης (@classmethod) το πρώτο όρισμα είναι μια αναφορά στην ίδια την κλάση (cls), όχι στο στιγμιότυπο.
Παράδειγμα χρήσης:
class MyClass:
def __init__(self, value):
# Αναθέτουμε την δοθείσα τιμή στο χαρακτηριστικό στιγμιότυπου 'value'
self.value = value
def print_value(self):
# Χρησιμοποιούμε το 'self' για πρόσβαση στο χαρακτηριστικό 'value' αυτού του στιγμιότυπου
print(f"Value is: {self.value}")
# Δημιουργούμε ένα στιγμιότυπο της κλάσης
obj = MyClass(10)
# Καλούμε τη μέθοδο στιγμιότυπου. Η Python μεταδίδει αυτόματα το 'obj' ως 'self'
obj.print_value()
Σε αυτό το παράδειγμα, το self μέσα στις μεθόδους __init__ και print_value αναφέρεται στο αντικείμενο obj. Χωρίς το self, δεν θα ήταν δυνατή η πρόσβαση στο χαρακτηριστικό value, το οποίο ανήκει ακριβώς σε αυτό το στιγμιότυπο της MyClass.