Бывает приходится добавлять "забытые" индексы когда таблица уже разрослась так, что поиск без индекса становится проблемой.
Хорошо конечно такие ситуации продумывать на этапе проектирования, но практика показывает, что люди ошибаются, …
Работая с разными людьми понял, что требовать от обычного человека загружать файлы на сайт в латинской транслитерации бесполезно.
Все равно загрузят с русскими а порой и со служебными символами.
Поэтому …
В процессе разработки тестов, иногда возникает необходимость, записать
в поле DateTimeFiled с параметром auto_now_add=True свою дату и время отличные от текущего.
Некоторые ради такой возможности даже отказываются от использования auto_now_add. 0_о
Но так делать не надо. Можно сделать так:
from datetime import datetime
from django.utils import timezone
from unittest import mock
def test_auto_now_add(self):
mocked = datetime(207, 11, 26, 0, 0, 0)
with mock.patch('django.utils.timezone.now', mock.Mock(return_value=mocked)):
MyModel.object.create(
...
created_at=timezone.now()
...
)
В результате получим нужную дату и время в нашем поле
Задача из серии, что будет в результате выполнения кода.
Тут словами объяснять, только хуже делать, поэтому привожу визуализацию того как выполняется код из задачи.
a = [[]]*3
a[1].append(1)
print(a)
После …
Python язык медленный и для любого минимального ускорения приходится хитрить, а так же учитывать особенности языка.
Одной из таких особенностей является разница в скорости способов создания словарей и множеств.
Варианты …
В каком виде лучше всего хранить список событий в python.
Чаще всего я видел, что хранят в виде списка словарей.
Что-нибудь типа такого:
dt = datetime(2007, 11, 26, 0, 0) …
Про декораторы знают все и как их делать написано много уже где.
Но вот про декораторы в рамках класса с доступом к параметрам класса надо еще поискать.
Декоратор внутри класса …
Среди коллег разработчиков на python бытует мнение что генераторы и итераторы быстрее, чем перебор for`ом
Но это не всегда так.
Вот пример:
def sum_times():
ch = ['bad', 'good']
data_list = …
def concat_times():
x = 'abc' * 10000
y = 'def' * 10000
time_start = datetime.datetime.now()
z = x + y
print(f'"+" Elapsed: {datetime.datetime.now() …
Это копия статьи с Хабра.
Мне информация показалась полезной потому сохраню у себя на память.
---
Как изменилась стандартная библиотека Python за последние годы
Когда выходит очередная версия Python, все внимание достается новым фичам языка: моржовому оператору, слиянию словарей, паттерн-матчингу. Еще много пишут об изменениях в асинхронной работе (модуль asyncio) и типизации (модуль typing) — эти модули на виду и бурно развиваются.
Остальным модулям стандартной библиотеки достается незаслуженно мало внимания. Хочу это исправить и рассказать, что интересного появилось в версиях 3.8–3.10.