Sobes.tech
Junior — Middle

Paaiškinkite dekoratorių koncepciją Python ir kaip jie naudojami funkcijų elgsenai keisti.

sobes.tech AI

Atsakymas iš AI

Python dekoratoriai yra funkcijos, kurios priima kitą funkciją ir grąžina naują funkciją su pakeistu arba išplėstu elgesiu, nekeičiant dekoruotos funkcijos šaltinio kodo.

Dažnai naudojami:

  • Iškvietimų registravimui
  • Prieigos teisių patikrinimui
  • Rezultatų talpinimui į talpyklą
  • Laiko matavimui

Paprasto dekoratoriaus pavyzdys, kuris rodo pranešimą prieš ir po funkcijos iškvietimo:

def decorator(func):
    def wrapper(*args, **kwargs):
        print("Prieš funkcijos iškvietimą")
        result = func(*args, **kwargs)
        print("Po funkcijos iškvietimo")
        return result
    return wrapper

@decorator
def say_hello(name):
    print(f"Labas, {name}!")

say_hello("Pasauli")

Išvestis bus:

Prieš funkcijos iškvietimą
Labas, Pasauli!
Po funkcijos iškvietimo

Taip dekoratoriai leidžia dinamiškai keisti funkcijų elgesį, nekeičiant jų šaltinio kodo.