Middle+
Mis on dekoratiivtööstuse tehas?
sobes.tech AI
Vastus AI-lt
Dekoratoritehas on funktsioon, mis tagastab dekoraatori. See võtab vastu argumendid, mis määravad tagastatava dekoraatori käitumise. See võimaldab luua korduvkasutatavaid dekoraatoreid erineva käitumisega sõltuvalt edastatud parameetritest.
# Dekoraatori tehase funktsioon
def my_decorator_factory(prefix):
# Sisefunktsioon (dekorator), mis võtab vastu dekoratiivse funktsiooni
def my_decorator(func):
# Veel üks sisefunktsioon (ümbris), mis teostab dekoratori tegevusi
def wrapper(*args, **kwargs):
print(f"{prefix}: Enne funktsiooni {func.__name__} kutsumist")
result = func(*args, **kwargs)
print(f"{prefix}: Pärast funktsiooni {func.__name__} kutsumist")
return result
return wrapper
return my_decorator
# Kasutades tehast, et luua dekoraatoreid erinevate prefiksidega
@my_decorator_factory("DEBUG")
def some_function():
print("Teostatakse some_function")
@my_decorator_factory("INFO")
def another_function(x, y):
print(f"Teostatakse another_function argumentidega {x}, {y}")
return x + y
some_function()
result = another_function(5, 10)
print(f"Tulemus: {result}")
Peamised sammud:
- Määratletakse väline funktsioon (tehas) parameetritega.
- Tehase sees määratletakse dekoratiivfunktsioon, mis võtab vastu dekoratiivse funktsiooni.
- Dekoratiivfunktsiooni sees määratletakse ümbrise funktsioon, mis sisaldab dekoratsiooni loogikat ning võib kasutada tehase parameetreid ja dekoratiivse funktsiooni argumente.
- Dekoratiivfunktsioon tagastab ümbrise funktsiooni.
- Tehase funktsioon tagastab dekoratiivfunktsiooni.
See on kasulik paindlike ja kohandatavate dekoratsioonide loomisel.