我试图使用
a = ''.join((Symbol('a'), Symbol('b'))
但我得到
File "/home/j/_Github-Projects/MiscScripts/string_permutations.py", line 72, in get_permutations
permutation = Symbol(''.join(permutation))
TypeError: sequence item 0: expected str instance, Symbol found
python docs说一个iterable被接受为join
的参数,但这似乎与异常告诉我的内容相矛盾。
我尝试在Symbol
中定义一些基类方法,但它没有帮助。
def __concat__(self, other):
return Symbol(self.symbol + other.symbol)
__add__ = __concat__
__and__ = __concat__
def __iconcat__(self, other):
self.symbol += other.symbol
return self
答案 0 :(得分:2)
答案 1 :(得分:0)
好的,这应该做到,而不是join
。
permutation = functools.reduce(
lambda x, y: x.concatenate(y),
permutation)
动态语言的乐趣,浏览参数名称,但没有意识到只接受某些值类型。