• Как работает в данном примере декорирование?

    Ohotnikx, Не очень мне понятно, о чем ты спрашиваешь.
    1. есть функция decor, которая возвращает внутреннею функцию.

    2. есть внутренняя функция _wrapper которая возвращает экземпляр класса MyClass

    3. сначала имя "MyClass' указывает на объект класса MyClass (Когда ты пишешь class MyClass: pass) он будет исполнен это объект, который при его объявлении, а не при вызове. Попробуй например
    class BadClass:
        a = 1/0
    тебе не надо инициализировать экземпляр класса, ты получишь ошибку. Потому что код будет выполнен, в отличии от функции например (там только при вызове).

    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'. это сделано, что бы вызов не отличался. Для понимания ну сделай например так.
    My_Decorated_Class_builder = decor(MyClass)
    
    decorated_class_instances = My_Decorated_Class_builder()
    normal_class_instance = MyClass()
    print(decorated_class_instances.complex_calculation())
    print(normal_class_instance.complex_calculation())

    Что еще не понятно?
    Написано
  • Как работает в данном примере декорирование?

    Влад Григорьев, да мы можем использовать иной синтакс, но в этой строчке MyClass у него становится ссылкой на объект типа function.
    Написано
  • Как работает в данном примере декорирование?

    Влад Григорьев, decor(MyClass) вот этот объект function. MyClass становится указателем на него. Я имел ввиду вот это и это очевидно из написанного.
    Написано
  • Как работает в данном примере декорирование?

    Влад Григорьев, ты чего хочешь я не пойму мы что говорим не функция а экземпляр объекта класса функция?
    Написано
  • Как работает в данном примере декорирование?

    Влад Григорьев, Не ну в этом смысле нам вообще надо отказать от слова функция тогда потому что все является объектом.
    Написано
  • Как устранить ошибку генератора?

    Алан Гибизов, Тут речь о пространстве имен. Когда мы импортируем объект класса он с большой буквы. Когда функцию обычно либо их мало очень специфические либо если их много то опять таки пространство имен. Например import numpy as np, а не начинают все функции которые планируется использовать импортировать по отдельность np будет играть роль пространства имен. А тут просто переменная field. Что за field где то в коде мы ее раз использовали ниже переопредили потом третий раз опять использовали ожидая там значение из import, а там уже другое и вот он баг. Поэтому импортируя модуль целиком мы его используем как пространство имен и подобные баги просто исключены.
    Написано
  • Как устранить ошибку генератора?

    Алан Гибизов, ну это же всего лишь переменная, если у нас где то будет еще переменная с таким именем то она перезапишется да и все. Это когда мы объект класса импортируем, что бы создать экземпляр, у нас такой проблемы нет, когда функцию импортируем, переобъявить мы тоже по запарке можем, но это маловероятно. когда константу импортируем, она константа, например from math import pi кто будет в здравом уме переопределять pi. А тут просто переменная field, где то объявили с таким же именем и все, import ушел.
    Написано
  • Практика очного собеседования для иногородних кандидатов?

    pddev, Я не озвучивал весь список, а привел примеры факторов. Развитие компании, на длинной дистанции определяется внутренними правилами, это правила создадут продуктивную атмосферу, или токсичную, приведут специалистов или не специалистов, и т.д.

    По этому честное отношение к соискателю и создание хороших условий развития для сотрудника компании - это в интересах самой компании.
    Написано
  • Почему DB browser for sqlite и питон выдают разные результаты запроса?

    Phys_Math_Man, нашел вот аттрибут у объекта соединение con.in_transaction если True то значит есть не закомиченные изменения. Также есть total_changes сколько рядов изменено, но надо помнить что он выдаст и не закомиченные изменения, то есть нужно использовать в сочетании с первым атрибутом, если con.in_transaction False значит все транзакции закомичены.
    Написано
  • Почему DB browser for sqlite и питон выдают разные результаты запроса?

    Phys_Math_Man, Надо доки читать это не серверная база, я ей редко пользуюсь. Глянь вот на эту библиотеку, она предоставляет историю изменений https://github.com/simonw/sqlite-history. Сначала, конечно лучше доки почитать.
    Написано
  • Почему DB browser for sqlite и питон выдают разные результаты запроса?

    Phys_Math_Man, Дело не в fetchall, а в том что ты можешь выбирать из базы значения которые не были закомичены, проводить с ними операции и комитить в базу, тогда, когда это нужно. Commit это сохранить все транзакции в базу, с момента последнего commit. Нужны тебя взял сделал препроцессинг, изменил и закомитил, это не путает. Транзакция должна быть подтверждена. Опасаешься побочных эффектов которые конечно могут быть используй контекстный менеджер.
    Написано
  • Как создать простую браузерную игру при помощи ChatGpt?

    Олег Петров, тут ключевое слово стабильность, если с этим будут серьезные улучшения, то будет и профессия оператор ChatGPT, если все это останется приблизительно на том же уровне, что сейчас, то развития он не получит, сам проект пока сильно убыточный.
    Написано
  • Не работают кастомные tf.keras слои, что делаю не так?

    Михаил Морозов, Да я не против, раз код от них то должен работать, если нет значит версии разные.
    Написано
  • Не работают кастомные tf.keras слои, что делаю не так?

    версии, проверяй. У них иногда меняется API от версий к версиям.
    Написано
  • Как сравнить datetime и полученную дату?

    denisland, Ну видишь, у тебя просто set который содержит объект datetime конвертируй в список и возьми элемент.
    d = list(time_w)[0] и все сравнивай потом.
    Написано
  • Как сравнить datetime и полученную дату?

    у time_w, какой тип данных, set? сделай print(type(time_w)). И просто сделай print(time_w). Что бы глянуть на него.
    Написано
  • Каким способом посчитать частоту сигнала по нескольким сэмплам?

    eegmak, Ну если шум минимальный, и самое главное стабильный то есть размер шума постоянный, то нейронка будет работать очень точно (при условии если собрать наблюдения частоты). В машинном обучении есть такое понятие как feature engineering (создание предикторов из сырых данных), так нейронные сети делают это за нас, и это единственный из всех алгоритмов которые это делают. Я к чему ваша функция это функция многих переменных и вы не знаете взаимотношей между ними, вы не знаете возможно из тех переменных что есть надо создать дополнительные переменные и эти дополнительные переменные послужат предикторами, так вот нейронки за счет нахождения полезных геометрических трансформаций в многомерном пространстве делают это лучше всех алгоритмов. Нейронные сети не интерпретируемы модели то есть в конце оно просто прогнозирует довольно точно но нельзя сформулировать взаимоотношение между отдельным предиктором и частотой. И когда это важно иметь возможность сформулировать взаимоотношения между отдельным предиктором и целью, то их не используют.
    Написано
  • Каким способом посчитать частоту сигнала по нескольким сэмплам?

    eegmak,

    Вот все таки мы говорим на разных языках. Я мыслю математически и пытаюсь классифицировать проблему, что бы осуществить подходящий подход к ее решению (если оно есть). Ты мыслишь, категориями специфичными для твоей области.

    Ты говоришь, что проблема имеет вид.частота = F(наши данные) + E. И говоришь надо смоделировать F и ее параметры. При этом говоришь что не одного наблюдения частоты у нас нет. Задача не решаемая и никогда не будет решаемая. Если есть эти наблюдения, то это задача регрессии и решается она многими способами.

    По твоим данным они мне не о чем не говорят перед нами временная последовательность. Мы можем декомпозировать ее, убрать из нее шум. Все это умеет прекрасно statsmodels а именно модуль tsa (time series analysis). https://www.statsmodels.org/stable/tsa.html. Все фильтры, трансформации, декомпозции и т.д. там есть еще и с хорошими примерами.
    Написано