Является ли какой-либо магический метод вызовом объекта в списке во время join()?
Объединение списка, содержащего объект - есть ли какой-либо магический метод, который я мог бы установить для преобразования объекта в строку до отказа соединения?
', '.join([…, Obj, …])
Я пробовал __str__ и __repr__, но не работал
Ответ 1
Нет, нет крюка join (хотя мне тоже нужна эта функция). Обычно вы увидите:
', '.join(str(x) for x in iterable)
или (почти) эквивалентно:
', '.join(map(str,iterable))
', '.join([str(x) for x in iterable])
(Обратите внимание, что все вышеперечисленное эквивалентно с точки зрения использования памяти при использовании CPython, поскольку str.join неявно принимает ваш генератор и все равно превращает его в кортеж.)