amarao: (Default)
amarao ([personal profile] amarao) wrote2023-03-01 05:06 pm

batteries included, сказал питон

[[1,2], [3,4]].flatten()
               ^ ERROR: Flatten is not a battery. That's why it's not in the Python.
yurikhan: (Default)

[personal profile] yurikhan 2023-03-02 03:45 pm (UTC)(link)

Не, к дизайну API стандартной библиотеки у меня больших вопросов нет. Магические методы для поддержки перегрузки операторов всё равно нужны. Ну, может быть, они бы смотрелись красивее, если бы назывались не dunder-именами, а operator **, как в C++, но вот как раз метод, имя которого не является валидным идентификатором, магичнее dunder’а. Джойн нескольких строк в строку через разделитель-строку выглядит чужеродно как метод класса списка — потому что лишь малая часть всех списков является списком строк. И ещё джойнить же хочется не только списки, но любые итерабли.

Вот то, что issubclass(bool, int) и !issubclass(int, float) — это печалька.