частота = F(наши данные) + E.
И говоришь надо смоделировать F и ее параметры. При этом говоришь что не одного наблюдения частоты у нас нет. Задача не решаемая и никогда не будет решаемая. Если есть эти наблюдения, то это задача регрессии и решается она многими способами.
1. есть функция decor, которая возвращает внутреннею функцию.
2. есть внутренняя функция _wrapper которая возвращает экземпляр класса MyClass
3. сначала имя "MyClass' указывает на объект класса MyClass (Когда ты пишешь
class MyClass: pass
) он будет исполнен это объект, который при его объявлении, а не при вызове. Попробуй например тебе не надо инициализировать экземпляр класса, ты получишь ошибку. Потому что код будет выполнен, в отличии от функции например (там только при вызове).4. после вот это строчки
MyClass = decor(MyClass)
имя 'MyClass' это указатель на объект внутренней функции. Иными словами 'MyClass = _wrapper'затем ты вызываешь MyClass(), а вызывается _wrapper то есть когда ты пишешь MyClass() это тоже самое _wrapper(*args, **kwargs). _wrapper в свою очередь имеет доступ к объект класса который мы объявляли изначально, вот в этой части
decor(MyClass)
мы передаем объект класса. То есть он доступен для _wrapper в расширенной но не глобальной области видимости. Вот здесь ты инициализируешь экземпляр func(*args, **kwargs), я тебе еще замечание насчет имени func сделал, так и запутаться не долго, у тебя происходит result = MyClass(). То есть создание экземпляра твоего класса, затем ты потенциально декорируешь его "увеличиваешь функциональность например" и возвращаешь. Все.Ты не обязан вот в этой строчке
MyClass = decor(MyClass)
давать имя ссылке на объект функции _wrapper 'MyClass'. это сделано, что бы вызов не отличался. Для понимания ну сделай например так.Что еще не понятно?