Co to jest dziedziczenie w Pythonie?

Dziedziczenie to fundamentalny koncept programowania obiektowego, który pozwala na definiowanie klas w taki sposób, że nowa klasa przejmuje atrybuty i metody klasy już istniejącej. W Pythonie dziedziczenie umożliwia tworzenie uporządkowanej i łatwej do zarządzania hierarchii klas.

Przykład kodu z wyjaśnieniami

Załóżmy, że tworzymy system do zarządzania pracownikami w firmie. Mamy klasę bazową Employee, która zawiera podstawowe informacje o pracowniku. Następnie, chcemy stworzyć klasy specjalizowane takie jak Manager i Intern, które dziedziczą z Employee i dodają własne specyficzne atrybuty lub metody.

# Klasa bazowa zawierająca informacje o pracowniku
class Employee:
    def __init__(self, name, email):
        self.name = name  # Imię pracownika
        self.email = email  # Adres email pracownika

    def display(self):
        # Wyświetla podstawowe informacje o pracowniku
        print(f"Name: {self.name}, Email: {self.email}")

# Klasa dziedzicząca z Employee, dodająca atrybut 'department'
class Manager(Employee):
    def __init__(self, name, email, department):
        super().__init__(name, email)  # Wywołanie konstruktora klasy bazowej
        self.department = department  # Dodatkowy atrybut specyficzny dla menedżera

    def display(self):
        # Rozszerzenie metody display o wyświetlenie departamentu
        super().display()  # Wywołanie metody z klasy bazowej
        print(f"Department: {self.department}")

# Klasa dla stażystów, z dodatkowym atrybutem 'duration'
class Intern(Employee):
    def __init__(self, name, email, duration):
        super().__init__(name, email)
        self.duration = duration  # Czas trwania stażu

    def display(self):
        super().display()
        print(f"Internship Duration: {self.duration} months")

# Tworzenie instancji klasy Manager i Intern
manager = Manager("Jan Kowalski", "jkowalski@example.com", "IT")
intern = Intern("Anna Nowak", "anowak@example.com", 6)

# Wyświetlenie informacji o menedżerze i stażyście
manager.display()
intern.display()

Podsumowanie

Dziedziczenie w Pythonie pozwala na tworzenie nowych klas na podstawie już istniejących, co ułatwia reużywanie kodu, organizację programu oraz wprowadza możliwość tworzenia bardziej złożonych relacji między klasami. Dzięki dziedziczeniu możemy łatwo rozszerzać funkcjonalność klas bazowych bez konieczności powielania kodu.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Python od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top