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

Hof*_*ann 10 python join magic-methods

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

', '.join([…, Obj, …])
Run Code Online (Sandbox Code Playgroud)

我尝试过__str__,__repr__但都没有奏效

mgi*_*son 11

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

', '.join(str(x) for x in iterable)
Run Code Online (Sandbox Code Playgroud)

或(几乎)等效地:

', '.join(map(str,iterable))
', '.join([str(x) for x in iterable])
Run Code Online (Sandbox Code Playgroud)

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