Профиль пользователя заблокирован сроком с 12 апреля 2022 г. и навсегда по причине: спам
  • Чем отличается ART от DALVIK?

    @pfemidi
    Тут могло бы быть краткое описание меня
    А в гугле нас забанили конечно. Совсем, понимаешь, забанили!!!
    Ответ написан
    Комментировать
  • В чем суть декораторов?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    В питоне функции и классы - это тоже объекты. У них есть особый синтаксис объявления, после объявления эти объекты доступны по имени как и любой другой объект с именем (переменная).

    Лирическое отступление. В питоне переменные работают не так же как в Си. В Си переменная - это ящичек, а значение в нём как бы лежит. В питоне объект - это как чайный пакетик, а имя как ярлычок на ниточке. Можно к одному пакетику несколько ярлычков привязать, то есть несколько имён. В Си это достигается указателями. В питоне, получается, всё "как бы указатели" и разыменовываются они неявно, под капотом. Но сейчас не о том...

    Есть такой паттерн проектирования - декоратор. Декоратор - это функция, которой в аргументе передаётся какой-то объект, а на выходе она возвращает другой объект, каким-то образом задекорированный. В реальной жизни декорация объекта - это, скажем, раскрасить ассенизаторную машину под божью коровку или сделать заточку из ложки (есть, по-прежнему, можно, но можно и пырнуть)... Также декоратор может и вовсе подменять объект полностью, к примеру, нам даётся пластилиновая фигурка, а декоратор - это процесс заливки её её гипсом и производство формы под литьё. Пластилин из готовой формы выковыряли и выкинули, а декоратор - это процесс (функция) производства формы из пластилиновой фигурки.

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

    Итак:
    my_object_instance = MyClass()
    my_object_instance = my_decorator1(my_object_instance)
    my_object_instance2 = my_decorator2(my_object_instance)

    В этом примере дважды задекорирован объект. Здесь при первом декорировании оригинал нам, судя по коду, не нужен (или декоратор его не менял, смотря что за декоратор, может просто зарегал где-то в списке...), а при втором декорировании нам остаётся доступным и оригинал и задекорированная версия.

    Пока всё просто и не ясно причем тут собаки и чем эти декораторы отличаются от обычных функций. На второй вопрос ответ прост -- ничем особенным. Просто мы такой смысл вкладываем в эти функции. Такая абстрактная концепция.

    В Питоне есть синтаксический сахар, чтобы декорировать объявления функций и классов.

    Иногда хочется наглядно модифицировать или зарегистрировать в каком-то глобальном реестре класс или функцию, но объявление при этом сильно менять не хочется.
    Можно так:
    my_pretty_functions = {}
    
    def my_deco(decorated_function):
        '''Это декоратор, который не меняет декорируемый объект, 
        лишь регистрирует его в словаре'''
        my_pretty_functions[decorated_function.__name__] = decorated_function
        return decorated_function
    
    def my_function(x):
        return x ** 2
    
    # вот декорирование вручную, без сахара
    my_function = my_deco(my_function)
    
    # Но в питоне же есть сахар для этого, и вот альтернативный вариант декорирования:
    @my_deco
    def my_other_function(x):
        return x ** 3

    Эти два способа декорирования работают одинаково, просто "собака" - это синтаксический сахар.

    Не все декораторы такие безобидные. Декоратор может вернуть совершенно другую функцию или вообще что угодно. Тогда это что угодно окажется под оригинальным именем функции, а оригинальная функция вовсе может быть потеряна (выброшена) или засунута в новую с помощью так называемого "замыкания".

    Но замыкания - это отдельная большая история, а узнать об этом вы сможете, к примеру, на занятиях по питону на otus.ru, где я скоро, надеюсь, стану преподавать=).

    Спрашивайте сто не понятно. Я тут не рассмотрел даже малой доли от разных способов применения декораторов в народном хозяйстве. Надо будет состряпать специальный курс про это.
    Ответ написан
    Комментировать
  • Как распихать по массивам набор данных через двоеточие?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    lefts, rights = zip(*(i.strip().split(':') for i in open('1.txt')))
    Ответ написан
    Комментировать
  • Почему все онлайн-сервисы геолокации гонят такой бред?

    Jump
    @Jump
    Системный администратор со стажем.
    Это нормально.
    Адреса раздает RIPE, у него есть база данных.
    Например адрес x.x.x.x выдан ООО "Рога и Копыта" юридический адрес - Бостон.
    Эта компания передала этот адрес своей дочерней фирме ООО "Шкуры" зарегистрированной на багамских островах.
    В данный момент этот адрес выделен серверу этой компании который размещается в Новосибирском датацентре.

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

    А завтра этот адрес назначат другому серверу, размещенному в Норвежском датацентре.
    А через неделю решат перенести этот сервер вместе с адресом в Пекин.
    А базы обновятся не у всех, и не сразу, а через месяц например.

    И какой все таки адрес должен выдавать сервис геолокации???

    Мораль - не стоит думать что сервис геолокации показывает реальный адрес размещения сервера с таким IP.
    Хотя во многих случаях данные совпадают.

    Бывает что один IP присвоен серверу который уже 30лет стоит по одному адресу.
    А бывает что один IP за день назначается трем различным серверам находящимся на разных континентах.
    С утра в Европе, к вечеру в Бангкоке, а ночью уже в Австралии.
    Ответ написан
    1 комментарий
  • Как решить проблему при установке библиотеки dlib?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    спасибо за ошибку

    сейчас ее распознаем с картинки и сразу ответим
    Ответ написан
    5 комментариев
  • Какие есть материалы по Python 3 для не совсем новичка?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Python. К вершинам мастерства. Лучано Рамальо
    5e6ca43d9ed20986657810.jpeg

    Python Для сложных задач. Дж.Вандерс Плас
    5e6ca4c531098019323162.jpeg
    Ответ написан
    Комментировать
  • Можете оценить код?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Начните с приведения кода в соотвествии со стандартами pep8
    5e6777e34a46f746495755.png

    Беглым взглядом:
    while 1 == 1:
    лучше заменить на
    while True:
    зачем вызывать операцию сравнения, если результат и так известен...
    directory_copy = 'C:\\Users\\MinuteX\\Downloads\\This is a server of MC\\fantasy_city' #Вписать директория откуда копировать папку ||| ВАЖНО!!! С ДВОЙНЫМ СЛЕШОМ
    directory = 'C:\\Users\\MinuteX\\Downloads\\Safe' #Впмсать директорию куда будут копироватся файлы, ||| ВАЖНО!!! ВСЕ СЛЕШЫ ДОЛЖНЫ БЫТЬ ДВОЙНЫМИ

    почитайте за os.path.join

    v_DIR = directory + '\\' + new_name + "_" + dt
    Почитайте за os.path.join и f-строки

    Всю вашу конструкцию в 5 строк можно привести к такому более читабельному виду к примеру:
    destination_file = os.path.join(
        DESTINATION_DIR,
        f'backup_{i}_{datetime.today().strftime("%Y-%m-%d-%H.%M.%S")}',
    )


    directory_copy = ...
    directory = ...

    вынести за пределы цикла - в цикле вы присваиваете им циклически одно и то же значение, и дать более осмысленные наименования

    В логику - не вникал...
    Ответ написан
    Комментировать
  • Изучать Python дальше или выбрать что-то другое?

    @deliro
    Всё верно, выбери что-то другое. Макдак, например.
    Ответ написан
    Комментировать
  • Стоит ли учить python на Hexlet? Да и вообще, какие годные курсы по python на сегодня можете посоветовать?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Могу посоветовать не учиться по курсам, продолжайте изучать по книге.
    Ответ написан
    Комментировать
  • Linux mint на SSD как правильно разметить диск?

    longclaps
    @longclaps
    Установщик предлагает разметку по умолчанию. Но ты же умный, ты ему не доверяешь, ты доверяешь нам...
    Правильно! Разбей SSD на 26 логических дисков равного размера, отформатируй в NTFS и ставь винду.
    Ответ написан
    Комментировать
  • Как ускорить этот простой код?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Строго говоря этот код не делает ничего полезного. Только вычисляет степени и забывает их тут же. Это значит, что никаких побочных эффектов кроме задержки и нагрева процессора код не создаёт.
    Отсюда (да, звучит как занудство, но каков вопрос, таков и ответ!), логичные 4 варианта:
    1. Если нагрев процессора обязателен, то ускорить код можно уменьшив число 100000 в скобках.
    2. Если нагрев не нужен, то можно поставить time.sleep(3) и получить задержку нужной длительности.
    3. Если нам важна зависимость задержки от производительности компьютера, но код нужно немного ускорить, см Вариант 1..
    4. Если ни задержка, ни нагревание не нужно, то удалите ВЕСЬ цикл и вы получите минимально возможную задержку.

    Какого черта такие хреновые формулировки вопросов?!
    Ответ написан
    Комментировать
  • Где сохраняются данные БД, запущенной в docker контейнере?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Есть варианты с подключением volume, сетевыми дисками и другой фигней, но разработчики Docker пишут чёрным по белому

    Don’t use Docker for persistent storage


    В общем, не предназначен докер для этих задач. Битые данные же при аварийной остановке контейнера вам не нужны?
    Ответ написан
    2 комментария
  • Прогнозирование отказа прибора?

    @dmshar
    Такие задачи сегодня действительно успешно решаются методами машинного обучения.
    То, о чем вы говорите - "дамп-файл" - это по сути временной ряд с записанными показателями вашего прибора (если я правильно понял). Плюс вы имеете информацию о том, когда в ходе ваших измерений прибор выходил из строя. Все это в совокупности составляет "обучающую выборку". Ваша задача найти такие паттерны в поведении системы, которые предвосхищают наступление сигнала поломки.
    Не знаю, чем вы конкретно занимаетесь, но я встречался с такими задачи в обнаружении отказов оборудования самолета, в обнаружении отказов в работе оборудования АЭС, в обнаружения начальной стадии заболевания, в задаче обнаружения вторжений в компьютерных сетях. Конечно, без грамотной поддержки специалиста в предметной области задачу не решить (или очень сложно решить). Его задача - объяснить в первом приближении, какие параметры могут влиять на появление аварийного сигнала, ваша первоначальная задача - проверить его "показания", скорее всего согласиться с ним, а может и скорректировать этот список (бывает и так).
    После этого ваша задача построить классификатор. Классификатор - это такой алгоритм, заданный либо функционально, либо логически, либо программно, который на вход будет принимать ваши будущие дамп-файлы, а на выходе давать прогноз (ставить диагноз) о приближении события , а по сути - относить эти данные к одному из классов, в простейшем случае - к классам "норма" или "предаварийное состояние".
    В машинном обучении такой подход носит название "обучение с учителем" т.е. в начале вы обучаете (строите) алгоритм классификации, а потом используете его для предсказания. Методов построения классификаторов - достаточно много, от тривиального кNN до методов на основе различных нейросетей, от методов анализа временных рядов до систем на основе нечетких вычислений. И заочно вам сказать, какой именно из этого множества алгоритмов целесообразнее применить именно для вашей задачи -невозможно. Тут уж вам потребуется либо самим разбираться с ними (генеральное направление я указал), либо нанимать специалиста по ML.
    Прочитать об этом можно где угодно - от научно-популярных статей типа
    https://habr.com/ru/post/460467/
    https://towardsdatascience.com/how-to-implement-ma...
    https://www.kdnuggets.com/2017/04/datarpm-predicti...
    до более серьезных работ (тут их приводить нет смысла, если дойдете до уровня когда они вам потребуются - думаю сами их найдете для своей предметной области. Если нет - напишите, чем смогу- помогу).
    В любом случае, поставленная вами задача - не легкая, но интересная. Быстро и с наскока ничего вразумительного вы не получите, но если найдете в себе силы и интерес углубиться - результаты могут быть глубокими и значимыми.
    Удачи!.
    Ответ написан
    2 комментария
  • Из какой сферы применения Python будет легче перейти на Data Science?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Аналитика. Человек с уверенным владением numpy и pandas на вес золота.
    Ответ написан
    3 комментария
  • Яндекс.Практикум - 1 урок. Функции. Python-разработчик. В чем проблема???

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Проблема в том, что вы не учитесь. Если мы этот практикум за вас решать будем, то и python-разработчиками тоже мы станем, а не вы.
    Ответ написан
    7 комментариев
  • От чего зависит скорость телеграм бота?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Скорость ответа бота зависит от: архитектуры решения, алгоритмов, мощности "железа", скорости сети, стабильности управляющего сервиса (telegram, в данном случае).

    Обращать внимание: на рейтинг и условия гарантий выбранного разработчика, на свой кошелёк, на требования к "умности" и скорости ответа бота, и на тестирование на всех этапах разработки.
    Ответ написан
    2 комментария
  • Что делать дальше?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    просто хотел узнать, что делали вы, после того как вы закончили основы

    У меня не было курсов. И Тостера тоже не было. Доступ в Интернет был, но не чаще, чем раз в неделю, на час и на скорости примерно 15 килобит в секунду. У меня даже IDE не было. Был только учебник, текстовый редактор, компилятор с интерфейсом командной строки и желание стать программистом. Я прочитал учебник и пытался писать программы. Когда не получалось, перечитать учебник ещё и ещё раз, экспериментировал с кодом снова и снова. А так как писал я на Ассемблере, ошибки в программах в лучшем случае заканчивались её молчаливым закрытием, а в худшем перезагружали или завешивали компьютер. Через год упорных ежедневных стараний я достиг уровня достаточного, чтобы устроиться на работу.

    Ну как, помогло вам знание о том, что делал я?
    Ответ написан
    2 комментария
  • Какую БД выбрать для маленького файлового сервиса?

    Любую реляционную: MySQL, Postgresql, Firebird. Первую точно можно настроить на малое потребление памяти, если необходимо.
    При использовании их легко вырасти, не меняя СУБД.
    В долгосрочной перспективе SQLite не подходит.
    Ответ написан
    Комментировать