python and some backend notes(ru)
108 subscribers
5 photos
1 file
192 links
Личные заметки и ссылки на статьи по python и backend вопросам, но может кому-то тоже будет интересно
Download Telegram
https://t.me/pythonbooksarchive - архив книг по python

#books
Никогда не стоит использовать f-strings для логгирования в python, такие строки будут выполняться вне зависимости от того, должна ли быть вызвана функция логгирования на текущем уровне. Стоит использовать старый формат для строк.
logger.info('Requests sent: %s success: %s errors: %s', self.request_sent, self.success, self.errors)

#logging #f_strings
Если вы хотите вызвать блокирующий метод из корутины и не заблокировать работу всего основного потока - вы можете вызвать ее в другом потоке используя AbstractEventLoop.run_in_executor(executor, func, *args):

fn = functools.partial(method, *args)
result = await loop.run_in_executor(None, fn)

#asyncio #functools
https://habr.com/ru/post/145835/ - метаклассы в python

В данной статье не показано как использовать метакласс, описанный классом, а не функцией. Вот пример:
>>> class Foo(metaclass=UpperAttrMetaclass):
... boo = 1
...
...
>>> f = Foo()
>>> f.boo
Traceback (most recent call last):
File "<input>", line 1, in <module>
f.boo
AttributeError: 'Foo' object has no attribute 'boo'
>>> f.BOO
1


#metaclass #type #object