• Как выполняются декораторы в aiogram?

    Vindicar
    @Vindicar
    RTFM!
    Функции(как и методы) в питоне - это объекты первого рода, их можно сохранять в переменные, передавать как параметры и так далее. Соответственно, декоратор - это тоже функция, и тогда
    @decorator("params")
    def myfunc(func_params):
        pass

    это тоже, что и
    def myfunc(func_params):
        pass
    wrapper = decorator("params")
    myfunc = wrapper(myfunc)


    Никто не мешает decorator() и wrapper() в примере сохранять адрес оборачиваемой функции в какую-то структуру данных, используемую затем ботом для диспетчеризации поступающих событий. Пример без класса:
    registered_funcs = []
    
    def decorator(param):
      #вложенная функция - фактический декоратор
      def wrapper(func):
        global registered_funcs
        #запоминаем декорируемую функцию
        registered_funcs.append( (param, func) )
        return func #не забываем её вернуть
      #возвращаем wrapper, чтобы им можно было продекорировать целевую функцию
      return wrapper
    
    #пример использования декоратора
    @decorator("foo")
    def myfunc(x):
      print("Hello from myfunc(), ", x)
    
    print(registered_funcs)
    #>>> [ ("foo", <function myfunc at 0xdeadf00d>) ]
    #и мы можем этим списком пользоваться, например:
    for arg, func in registered_funcs:
      func(arg)
    Ответ написан
    1 комментарий
  • Вопрос к знатокам opencv?

    Vindicar
    @Vindicar
    RTFM!
    Сами - нет. Подбери один раз значение под свою задачу, и оставь его.
    scaleFactor - это шаг масштабирования при поиске объектов разного видимого размера.
    Чем он ближе к 1, тем более мелкие шаги делает алгоритм, тем больше этих шагов, тем дольше обрабатывается изображение. Чем он больше, тем быстрее обработка - но в то же время лицо "промежуточного" размера между парой шагов может быть потеряно.

    Следует учесть, что лицо может "теряться" не только из-за этого параметра, но и из-за множества других факторов.
    Ответ написан
    Комментировать