Comments 14
python-benedict
Какой-то комбайн. Ладно бы он просто упрощал работу с dict, но в либу ещё зачем-то встроили магию в виде парсинга и экспорт в ini/yaml/xsl/etc, чтение данных из http/s3.
спасибо, очень актуальная статья
Да, странное решение с точками. Так не хватает возможности обращаться к ключам, как к атрибутам. Как в JS
Есть отдельные библиотеки для реализации такой возможности. Так что при желании сделать можно.
Точечная нотация — это возможно, если вы уверены, что все ключи 1) имеют тип str и 2) не совпадают со свойствами и методами класса dict. Но для этого не нужна библиотека, так как всё решается простой обёрткой с __getattr__. Однако, если указанные выше условия удовлетворяются, вам проще использовать dataclass или named tuple.
Да это все понятно, но слишком много бойлерплейта. Иногда просто хочется написать foo?.bar?.baz
без необходимости определять структуры данных и их инициализировать.
Namedtuple например
Так в JS у вас нет такой структуры, как словарь. Все объекты просто экземпляры object
В других языках (в том числе, питоне) есть адекватное разделение, где одно - это атрибут, а другое - item
Я не ярый хейтер JS, но их подход к ООП (точнее ПОП вместо него) меня напрягает, и это определенно является минусом языком нежели плюсом
~~У кого у нас?? Я на питоне пишу)~~
Перечитал и понял смысл?
Мне наоборот понравилось их "обратное наследование", это много интересных приёмов может дать. Только этим почему-то мало кто пользуется, вместо этого JS всё больше развивается в сторону традиционных парадигм. Ну и родовая травма у него (впрочем, она и у Питона есть, просто не такая существенная).
Это не ПОП вместо ООП.
Прототипное программирование является стилем ООП, при котором отсутствуют классы, а вместо них прототипы.
От того и разделение на ветки: ООП классовое и ООП прототипное. Есть еще другие ветки.
Ну и да, будет КОП, ПОП и так далее :D
Лучшие новые библиотеки Python за 2022 год