这更像是我在尝试理解的 Python 模块中遇到的“有趣”现象,而不是寻求帮助(尽管解决方案也很有用)。
>>> import fuzzy
>>> s = fuzzy.Soundex(4)
>>> a = "apple"
>>> b = a
>>> sdx_a = s(a)
>>> sdx_a
'A140'
>>> a
'APPLE'
>>> b
'APPLE'
是的,所以模糊模块完全违反了 Python 中字符串的不变性。它能够做到这一点是因为它是 C 扩展吗?这是否构成 CPython 以及模块中的错误,甚至是安全风险?
另外,任何人都可以想出一种方法来解决这种行为吗?我希望能够保留字符串的原始大小写。
干杯,
亚历克斯