Sobes.tech
Junior — Middle

Πώς μπορεί κανείς να καλέσει μια στατική μέθοδο μέσα σε μια κλάση ή εκτός του πλαισίου της;

sobes.tech AI

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

Στην Python, η στατική μέθοδος δηλώνεται με τον διακοσμητή @staticmethod. Μπορεί να κληθεί τόσο μέσα όσο και έξω από την κλάση, χρησιμοποιώντας το όνομα της κλάσης ή ένα στιγμιότυπο.

Παράδειγμα:

class ΗΚλάσηΜου:
    @staticmethod
    def χαιρετισμός(όνομα):
        return f"Γειά σου, {όνομα}!"

# Κλήση μέσα στην κλάση (π.χ. από μια άλλη μέθοδο)
class ΗΚλάσηΜου:
    @staticmethod
    def χαιρετισμός(όνομα):
        return f"Γειά σου, {όνομα}!"
    
    def καλωσόρισμα(self):
        return ΗΚλάσηΜου.χαιρετισμός("Αλίκη")

# Κλήση έξω από την κλάση
print(ΗΚλάσηΜου.χαιρετισμός("Bob"))

obj = ΗΚλάσηΜου()
print(obj.χαιρετισμός("Charlie"))  # λειτουργεί επίσης, αλλά προτιμάται η κλήση μέσω της κλάσης

Έτσι, η στατική μέθοδος δεν εξαρτάται από ένα στιγμιότυπο και δεν δέχεται το παράμετρο self.