首页 > 解决方案 > 将字符串格式应用于列表连接

问题描述

我正在尝试执行以下操作:

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'])])

标签: pythonpython-3.x

解决方案


您可以在您的中创建一个+运算符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

推荐阅读