繁体   English   中英

内置连接函数使用什么方法?

[英]What methods does the built-in join function use?

我正在尝试使用

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

str.join(iterable)文档

文档还说:

如果可迭代中有任何非字符串值,则会引发TypeError。

毕竟, Symbol('a')不是字符串。

好的,应该这样做,而不要join

        permutation = functools.reduce(
            lambda x, y: x.concatenate(y),
            permutation)

动态语言的乐趣在于浏览了参数名称,但没有意识到仅接受某些值类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM