Python: Dekoratory

Ta dokumentacja jest częścią przewodnika Nauka Pythona. Pełny przewodnik znajdziesz tutaj: Kompleksowy przewodnik po Pythonie.

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia Python cloud, które upraszcza proces wdrażania:

  • Wdrażaj swoją aplikację na produkcję w kilka sekund za pomocą prostego git push.
  • Korzystaj z własnej nazwy domeny, z automatyczną konfiguracją certyfikatu HTTPS – bezpieczne połączenia są obsługiwane za Ciebie.
  • Polegaj na automatycznych backupach, aktualizacjach jednym kliknięciem oraz przewidywalnych kosztach, dzięki czemu możesz skupić się na kodzie, a nie na zarządzaniu infrastrukturą.
  • Korzystaj z wysokiej wydajności i bezpieczeństwa na prywatnej, dedykowanej infrastrukturze. Twoje środowisko jest odizolowane i chronione.

Oszczędzaj czas i upraszczaj swój workflow: Twój kod może działać na Python cloud hosting Stackhero już w 5 minut.

Dekoratory pozwalają rozszerzać lub modyfikować zachowanie funkcji lub klas bez zmiany ich kodu źródłowego. Owijają inną funkcję i dodają pewną funkcjonalność przed lub po wykonaniu owiniętej funkcji.

def decorator_function(func):
  def wrapper(*args, **kwargs):
    # zrób coś przed wywołaniem funkcji
    result = func(*args, **kwargs)
    # zrób coś po wywołaniu funkcji
    return result
  return wrapper

@decorator_function
def my_function():
  # zrób coś

Przykłady:

def greet_decorator(func):
  def wrapper(name):
    return "Hello, " + func(name) + "!"
  return wrapper

@greet_decorator
def get_name(name):
  return name

print(get_name("John"))  # Wynik: Hello, John!