Sobes.tech
Junior — Middle
81

Чем отличаются параметрические декораторы от непараметрических в программировании?

Answer from AI

sobes.tech AI

Параметрические декораторы — это функции-декораторы, которые принимают аргументы при объявлении, то есть вызываются с параметрами и возвращают сам декоратор. Непараметрические декораторы — это просто функции, которые принимают функцию и возвращают новую функцию без дополнительных параметров.

Пример непараметрического декоратора:

def simple_decorator(func):
    def wrapper():
        print("До вызова функции")
        func()
        print("После вызова функции")
    return wrapper

@simple_decorator
def say_hello():
    print("Hello")

say_hello()

Пример параметрического декоратора:

def repeat(times):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(times):
                func(*args, **kwargs)
        return wrapper
    return decorator

@repeat(times=3)
def say_hello():
    print("Hello")

say_hello()

Таким образом, параметрические декораторы позволяют передавать настройки в декоратор, а непараметрические — нет.