在join()期间是否在列表中的对象上调用了任何魔术方法?

时间:2013-05-31 13:36:09

标签: python join magic-methods

加入包含对象的列表 - 在加入失败之前,我可以设置任何魔术方法将对象转换为字符串吗?

', '.join([…, Obj, …])

我尝试了__str____repr__,但都没有工作

1 个答案:

答案 0 :(得分:12)

不,没有join钩子(虽然我也想要这个功能)。通常你会看到:

', '.join(str(x) for x in iterable)

或(几乎)等效地:

', '.join(map(str,iterable))
', '.join([str(x) for x in iterable])

(请注意,以上所有内容在使用CPython时的内存使用方面都是等效的,因为str.join会隐式使用您的生成器并将其转换为元组。)