Statyczne zmienne i metody w Pythonie

W Pythonie, podobnie jak w wielu innych językach programowania, istnieje możliwość definiowania statycznych zmiennych i metod. Są one związane z klasą, a nie z jej instancjami, co oznacza, że wartości zmiennych są współdzielone między wszystkimi instancjami klasy, a metody można wywoływać bez potrzeby tworzenia obiektu klasy. W tym artykule omówimy, jak używać statycznych zmiennych i metod w Pythonie, podając przykłady zastosowań, które wykraczają poza typowy przykład związany ze zwierzętami.

Przykład użycia: Kalkulator statystyk

Zacznijmy od całego przykładu kodu, który ilustruje, jak statyczne zmienne i metody mogą być użyte w Pythonie. Załóżmy, że chcemy stworzyć kalkulator, który oblicza statystyki dla różnych zestawów danych – na przykład średnią, medianę i modę. W tym celu użyjemy statycznych metod, aby nie musieć tworzyć instancji kalkulatora za każdym razem, gdy chcemy wykonać obliczenia.

class StatisticsCalculator:
    # Statyczna metoda do obliczania średniej
    @staticmethod
    def calculateMean(dataSet):
        return sum(dataSet) / len(dataSet)

    # Statyczna metoda do obliczania mediany
    @staticmethod
    def calculateMedian(dataSet):
        sortedData = sorted(dataSet)
        n = len(sortedData)
        midpoint = n // 2
        if n % 2 == 0:
            return (sortedData[midpoint - 1] + sortedData[midpoint]) / 2
        else:
            return sortedData[midpoint]

    # Statyczna metoda do obliczania mody
    @staticmethod
    def calculateMode(dataSet):
        frequency = {}
        for item in dataSet:
            frequency[item] = frequency.get(item, 0) + 1
        maxFrequency = max(frequency.values())
        modes = [key for key, val in frequency.items() if val == maxFrequency]
        return modes

# Przykład użycia
data = [1, 2, 4, 4, 3, 5, 4]
mean = StatisticsCalculator.calculateMean(data)
median = StatisticsCalculator.calculateMedian(data)
mode = StatisticsCalculator.calculateMode(data)

print(f"Średnia: {mean}, Mediana: {median}, Moda: {mode}")

W powyższym kodzie, StatisticsCalculator zawiera trzy statyczne metody: calculateMean, calculateMedian, i calculateMode, które obliczają odpowiednio średnią, medianę i modę zestawu danych przekazanego jako argument. Metody te są oznaczone dekoratorem @staticmethod, co oznacza, że można je wywołać bezpośrednio z klasy, bez potrzeby tworzenia jej instancji.

Dlaczego używać statycznych zmiennych i metod?

Statyczne zmienne i metody są przydatne, gdy chcemy, aby pewne dane lub funkcje były wspólne dla wszystkich instancji klasy. W przypadku naszego kalkulatora statystyk, nie ma potrzeby tworzenia osobnych instancji kalkulatora dla każdego zestawu danych, ponieważ metody obliczeniowe nie zależą od stanu konkretnego obiektu, ale są czystymi funkcjami operującymi na przekazanych danych.

Podsumowanie

Statyczne zmienne i metody w Pythonie oferują wygodny sposób na definiowanie elementów związanych z klasą, a nie z jej instancjami. Umożliwiają one współdzielenie danych i funkcji między wszystkimi instancjami klasy oraz umożliwiają wywoływanie metod bez konieczności tworzenia obiektu. Przykład kalkulatora statystyk pokazuje, jak można wykorzystać te mechanizmy do tworzenia

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

Scroll to Top