Tkinter — это стандартная библиотека Python, которая позволяет создавать графические интерфейсы пользователя (GUI). Она является оберткой вокруг популярной библиотеки Tk, написанной на языке Tcl.
ELI5 (расшифровывается как "Explain like I'm 5") – это библиотека Python, предназначенная для отладки и объяснения предсказаний классификаторов машинного обучения. Она работает с популярными библиотеками машинного обучения, такими как scikit-learn, XGBoost, Keras.
Asyncore — это модуль в Python, который позволяет создавать асинхронные сетевые приложения. Он был частью стандартной библиотеки Python с версии 2.0 до версии 3.11, но с версии 3.6 он помечен как устаревший и будет удален в версии 3.12.
Asyncore работает, используя дескрипторы событий. Дескриптор события - это объект, который представляет собой сокет или другой объект, который может генерировать события. Asyncore отслеживает дескрипторы событий и вызывает их методы обратного вызова, когда происходят события.
CherryPy — это легковесный объектно-ориентированный веб-фреймворк на Python, предназначенный для быстрой разработки веб-приложений. Он отличается простотой и элегантностью подхода, позволяя создавать мощные и гибкие веб-сайты.
Web2py — это бесплатный фреймворк с открытым исходным кодом, предназначенный для быстрой разработки безопасных веб-приложений, основанных на базах данных. Он написан на Python и программируется с использованием того же языка.
TurboGears — это фреймворк для создания веб-приложений на Python. Он состоит из набора взаимозаменяемых компонентов, упрощающих и ускоряющих разработку. Вот некоторые ключевые особенности TurboGears:
— TurboGears использует архитектурный шаблон Model-View-Controller (MVC), разделяя ваше приложение на логические блоки: модель, представление и контроллер. Это способствует более организованной и поддерживаемой разработке. — TurboGears позволяет вам выбирать нужные библиотеки и инструменты. По умолчанию он использует Pylons, SQLAlchemy, Genshi и Repoze, но вы можете заменить их на другие.
SpeechRecognition – это библиотека Python, которая позволяет использовать API распознавания речи от разных компаний, таких как Google, Microsoft, IBM и другие. Она также имеет возможность работать офлайн.
Process — это класс для создания и управления отдельными процессами из модуля multiprocessing. Создание процесса выполняется конструктором Process, передавая целевую функцию и аргументы.
При создании процессов нужно учитывать: — Ограничения на доступ к данным между процессами.
Collections.MutableMapping — это интерфейс, который представляет изменяемое отображение (словарь). Он наследуется от интерфейса Mapping и добавляет методы для изменения отображения, такие как __setitem__, __delitem__ и clear.
Основное преимущество в использовании MutableMapping — это возможность передавать экземпляры такого класса в любое API, ожидающее словарь. Например, во многих функциях в стандартной библиотеке есть параметры типа dict. Если создать класс, реализующий MutableMapping, его экземпляры можно будет передавать в такие функции.
#Вопросы_с_собеседования Можно ли объявлять функцию внутри другой функции? Где она будет видна?
Да, функции можно объявлять внутри других функций. Такая вложенная функция будет видна и доступна для вызова только внутри родительской функции, в которой она определена.
Это называется замыканием и позволяет ограничить область видимости вложенной функции, чтобы она не загрязняла глобальное пространство имен.
Вложенные функции могут быть полезны, когда нужно реализовать вспомогательную логику, связанную только с работой родительской функции.
#вопросы_с_собеседований Что такое подгенератор (subgenerator)?
Подгенератор создается с помощью конструкции yield from внутри генератора.
Использование подгенераторов позволяет разбить генератор на несколько частей для упрощения кода и оптимизации памяти. Это полезный инструмент при работе с последовательностями.
Механизм передает значения между генераторами без сохранения всей последовательности в памяти и блокирует основной генератор до полного завершения подгенератора.
Статические методы - это методы, которые не требуют создания экземпляра класса для вызова. Они не имеют доступа к атрибутам и другим методам экземпляра класса и объявляются с помощью декоратора @staticmethod.
Статические методы часто используются для реализации функционала, не зависящего от состояния экземпляра класса и полезны при создании утилитарных классов и функций.
Как видно из примера, статические методы позволяют удобно организовывать функционал, связанный с обработкой строк, в класс StringUtils, не создавая отдельных объектов.
В Python есть несколько полезных констант в пакете string, которые нужно знать начинающему программисту:
— string.ascii_letters: строка со всеми буквами английского алфавита (строчными и прописными). — string.digits: строка со всеми цифрами. — string.hexdigits: строка со всеми шестнадцатеричными цифрами. — string.octdigits: строка со всеми восьмеричными цифрами. — string.punctuation: строка со всеми знаками пунктуации. — string.whitespace: строка со всеми пробельными символами.
Эти константы позволяют легко получить строки с определенными наборами символов, что часто бывает полезно при работе со строками.