Является ли какой-либо магический метод вызовом объекта в списке во время 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 неявно принимает ваш генератор и все равно превращает его в кортеж.)