Ситуация такая. Я работаю в компании, которая выпускает шлюзы сетевой безопасности. И нам, помимо тестирования работоспособности кода, нужно ещё тестировать эксплуатационные характеристики продукта.
Ситуация такая. Я работаю в компании, которая выпускает шлюзы сетевой безопасности. И нам, помимо тестирования работоспособности кода, нужно ещё тестировать эксплуатационные характеристики продукта.
Словарь в Python является фундаментальным типом хотя бы потому, что используется для хранения атрибутов объектов любого класса. Внутри словарь реализован как хеш-таблица с открытой адресацией, где коллизии разрешаются методом квадратичного пробинга, таблица расширяется при заполнении более чем на ⅔.
Python — высокоуровневый язык программирования, который пользуется большим спросом. Он ориентирован на повышение производительности разработчика и читаемости кода.
Всем известно, что Python — интерпретируемый язык программирования. Но это не совсем точно, конечно. Чтобы употреблять такие слова, нужно говорить о какой-то конкретной имплементации языка.Что же, давайте попробуем начать сначала.
Pandas сегодня является чуть ли не go-to инструментом для решения аналитических задач. Он предоставляет удобный и понятный широкому кругу исследователей интерфейс манипуляции массивами данных. Давай те же посмотрим, что «под капотом» этой библиотеки и за счёт чего происходит такая эффективная работа с данными?
Многие из вас знают, что в Python есть GIL – Global Interpreter Lock, тот самый, который не даёт запускать несколько потоков и нагружать ядра процессора. Отчасти это так, но за GIL в Python скрывается очень много всего.
Многие знают, что Numpy классный и замечательный. А его ndarray позволяют не только удобно обращаться с данными, но также делают это крайне производительно. За счёт чего?
Все мы знаем и любим генераторы в Python. По сути, генератор – это итератор, который можно использовать в цикле, как обычно. Но генератор дополнительно содержит внутри ключевое слово yield.
Безусловно, Python хорош всем. Но иногда всё же хочется немножко побыстрее. Сначала совершаются попытки изменить алгоритмический подход. Но если и этого не хватает, то дело серьёзное, пора засучивать рукава и расчехлять С-компилятор.
При работе с Django часто приходят задачи по изменению стандартного поведения юзера. В большинстве случаев, это заканчивается расширением полей, которое все привыкли делать через 1-1 и отказываются реализовывать по-другому. Но начиная с версии 1.7, Django предоставляет новые механизмы по работе с этим. Их два – AbstractUser и AbstractBaseUser.