gpt4 book ai didi

python - 违反了 CPython 中的字符串不可变性

转载 作者:太空狗 更新时间:2023-10-29 17:06:09 25 4
gpt4 key购买 nike

这更多是我在尝试理解的 Python 模块中遇到的“有趣”现象,而不是请求帮助(尽管解决方案也很有用)。

>>> import fuzzy
>>> s = fuzzy.Soundex(4)
>>> a = "apple"
>>> b = a
>>> sdx_a = s(a)
>>> sdx_a
'A140'
>>> a
'APPLE'
>>> b
'APPLE'

是的,所以 fuzzy模块完全违反了 Python 中字符串的不变性。它能够做到这一点是因为它是 C 扩展吗?这是否构成 CPython 和模块中的错误,甚至是安全风险?

还有,谁能想出一种方法来解决这种行为?我希望能够保留字符串的原始大写。

干杯,

亚历克斯

最佳答案

此错误已解决 back in February ;更新你的版本。

要回答您的问题,是的,有几种方法可以在 C 级别修改不可变类型。在这一点上,安全隐患是未知的,甚至可能是不可知的。

关于python - 违反了 CPython 中的字符串不可变性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10378083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com