Sobes.tech
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.