gpt4 book ai didi

Python 的 join() 不会加入我的对象的字符串表示 (__str__)

转载 作者:太空狗 更新时间:2023-10-30 00:22:06 25 4
gpt4 key购买 nike

我不确定我在这里做错了什么:

>>> class Stringy(object):
... def __str__(self):
... return "taco"
... def __repr__(self):
... return "taco"
...
>>> lunch = Stringy()
>>> lunch
taco
>>> str(lunch)
'taco'
>>> '-'.join(('carnitas',lunch))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 1: expected string, Stringy found

鉴于我在 Stringy 对象中包含了 __str__() 方法,难道 join() 不应该将 lunch 视为字符串吗?

最佳答案

不,你必须自己把它转换成str

'-'.join(('carnitas',str(lunch)))

如果您必须对整个项目序列执行此操作

'-'.join(str(x) for x in seq)

'-'.join(map(str, seq))

对于你的特殊情况,你可以写

'carnitas-'+str(lunch)

关于Python 的 join() 不会加入我的对象的字符串表示 (__str__),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3410647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com