У меня проблема с функцией list()
. У меня простой класс
class Foo(object):
def __init__(self, value):
self.value = value
И я пытаюсь создать список с объектом Foo
:
lhs = list(Foo(1))
...
rhs = list(Foo(2))
return lhs + rhs
Желаемый результат должен быть [Foo(1), Foo(2)]
. Однако мне нужно использовать такой результат в рекурсивном вызове, поэтому на следующем шаге этот результат становится аргументом функции list()
lhs
, и я хочу добавить такой список другим элементом Foo
:
lhs = list([Foo(1), Foo(2)])
...
rhs = list(Foo(3))
return lhs + rhs
И конечный результат должен быть [Foo(1), Foo(2), Foo(3)]
. Проблема в том, что функция list(Foo(1))
вызывает TypeError
, потому что Foo
не повторяется. Есть ли способ как это исправить?
EDIT
Лучший вариант использования:
def create_foo(value):
return Foo(value)
def concatenate(lhs, rhs):
return list(lhs) + list(rhs)
concatenate(concatenate(create_foo(1), create_foo(2)), create_foo(3))