python - 将字符串格式应用于列表连接
问题描述
我正在尝试执行以下操作:
node = ''.join(c_info['in']+c_info['out'])
TypeError: sequence item 0: expected str instance, Resistor found
是否有我可以添加/修改的 dunder 方法,以便字符串连接可以与该类的实例一起使用?还是我需要手动进行字符串格式化?否则,我正在做的是:
node = ''.join([str(item) for item in (c_info['in'] + c_info['out'])])
解决方案
您可以在您的中创建一个+
运算符Resistor
来显式返回您想要的类型。(顺便说一句,这也意味着您不再需要join
了。)
class Foo:
def __init__(self, initial_value = 0):
self.bar = initial_value
def __add__(self, other):
return str(self.bar)+str(other.bar)
foo1 = Foo(10)
foo2 = Foo(20)
print (foo1+foo2)
结果(常规字符串):
1020