我不确定我在这里做错了什么:
>>> 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
鉴于我将__str__()
Stringy 对象中的方法,不应该join()
将午餐视为字符串?
不,你必须自己将其转换为 str
'-'.join(('carnitas',str(lunch)))
如果您必须对整个项目序列执行此操作
'-'.join(str(x) for x in seq)
or
'-'.join(map(str, seq))
对于您的具体情况,您可以写
'carnitas-'+str(lunch)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)