Metody klasy w Pythonie - tworzenie alternatywnych konstruktorów
Metody klasy mogą stanowić sposób na tworzenie alternatywnych konstruktorów o różnej liczbie argumentów (przeciążanie konstruktora) np. biorąc pod uwagę przykładową klasę Employee, która jako argumenty przyjmuje nazwę pracownika i wartość pensji, możemy utworzyć metodę klasy, która przyjmie 3 argumenty: imię, nazwisko i wartość wynagrodzenia i zwraca egzemplarz klasy Employee.
class Employee: def __init__(self, name, salary): self.name = name self.salary = salary @classmethod def from_full_name(cls, first, last, salary): name = '{} {}'.format(first, last) return cls(name, salary) john_doe = Employee.from_full_name('John', 'Doe', 8000)
Oprócz metod klasy istnieją też metody statyczne, które są poprzedzone dekoratorem @staticmethod. Metody statyczne nie przyjmują jako argumentu ani odwołania self do instancji, ani cls do klasy. Mogą przyjmować jawne argumenty, będące parametrami tych funkcji. Funkcje statyczne są powiązane tematycznie z klasą, w której są zawarte, ale nie powinny operować na zmiennych klasy lub instancji.
źródło: www.slawomirkwiatkowski.pl