Все, больше ничего не надо делать. Если метод dunder str не определен, то питон автоматом вызывает dunder repr метод. А прежде чем писать такие статьи, стоит почитать документацию питона. Вы же понимаете что многие люди будут ваши статьи, особенно новички, потом нахватаются от вас плохого кода. Благодарю
Конечно на вкус и цвет, но вот эта цепочка or как то не очень выглядит, трудно читать. Лучше через простые if elif else
admin = user if user else get_user()
Лучше объекты явно проверять объекты на None, в будущем могут появится баги из за этого
return sum(factors) >= 2
Здесь лучше тоже явно кажется, обычным фориком пробежался и все, понятнее будет программисту который читает твой код
for i in range(max_pages + 1):
rsp = client.get_all_users(page=page, limit=limit)
if not rsp.get("user_ids"):
break
if i >= max_pages:
raise RuntimeError("Too many pagination elements")
yield rsp["user_ids"]
Зачем это условие с if i >= max_pages, просто убери в range +1 и все. оно же для каждой итерации будет выполняться...
def find(path: str, dict_: dict):
keys = path.split(".")
data = dict_
for key in keys:
try:
data = data.get(key)
except AttributeError:
return None
return data
Посмотрел исходный код, либо здесь я ничего не понял. Все равно не понял. Непонятные названия переменных, лишние абстракции, овер дофига уровни вложенности. не соблюдение pep8(понимаю, автор пишет всего лишь 2 недели, но пусть хотя бы с snake_case можно же писать код), странные тесты.
Плохие привычка которая у меня была на самом начале - это учить все одновременно. Помню изучал java, python, sql, алгоритмы одновременно. Из за этого у меня была каша в голове. За двумя зайцами погонишься, ни одного не поймаешь, как говорится
Стоп, почему убирать? Docker compose же нужен для локальной разработки
async with async_session_maker()
не должно быть в DAO, он должен передаваться как аргумент в функции или же в конструктореВсе, больше ничего не надо делать. Если метод dunder str не определен, то питон автоматом вызывает dunder repr метод.
А прежде чем писать такие статьи, стоит почитать документацию питона. Вы же понимаете что многие люди будут ваши статьи, особенно новички, потом нахватаются от вас плохого кода. Благодарю
Ужас... Можно же просто переопределить метод repr
Автору прежде чем писать гайды, надо почитать документацию, почему не надо создавать сессию в самом DAO
https://docs.sqlalchemy.org/en/20/orm/session_basics.html
Конечно на вкус и цвет, но вот эта цепочка or как то не очень выглядит, трудно читать. Лучше через простые if elif else
Лучше объекты явно проверять объекты на None, в будущем могут появится баги из за этого
Здесь лучше тоже явно кажется, обычным фориком пробежался и все, понятнее будет программисту который читает твой код
Зачем это условие с if i >= max_pages, просто убери в range +1 и все. оно же для каждой итерации будет выполняться...
bruh...
Грубо говоря, можешь передать часть аргументов в начале, а часть потом передать
Какой ты нафиг программист?
Есть же github copilot, tabnine etc
Прочел его историю. Чуть не расплакался
Посмотрел исходный код, либо здесь я ничего не понял. Все равно не понял. Непонятные названия переменных, лишние абстракции, овер дофига уровни вложенности. не соблюдение pep8(понимаю, автор пишет всего лишь 2 недели, но пусть хотя бы с snake_case можно же писать код), странные тесты.
Автор книги слышал о PEP 8?
От такого сахара можно диабет заработать :0
Плохие привычка которая у меня была на самом начале - это учить все одновременно. Помню изучал java, python, sql, алгоритмы одновременно. Из за этого у меня была каша в голове. За двумя зайцами погонишься, ни одного не поймаешь, как говорится
Походу он из Руби перешел на Пайтон
На чем разрабатываете бота? Думаю, это Python.
Сделано на конструкторе, мдааа...
Теперь в 3.10 можно указывать в методе класса, сам класс.
Отсылка к Дейлу Карнеги, уважуха
Спасибо за статью! Как раз хотел попробовать sqlmodel для своих проектов (@^◡^)