gpt4 book ai didi

python - 在 Python 中字符串是不可变的,那么为什么在 Python 中允许覆盖操作?

转载 作者:太空宇宙 更新时间:2023-11-04 09:58:40 27 4
gpt4 key购买 nike

在 Python 中字符串是不可变的,那么为什么在 Python 中允许以下操作?

a = 'Hello'
a = 'Hi'

最佳答案

因为 a 是字符串的引用/句柄(如果您愿意,类似于指针),而不是一个字符串。您甚至可以检查内存地址来确定。

>>> a = "hello"
>>> id(a)
140102378280544 # memory address (not exactly but that's irrelevant to the topic)
>>> a = 'hii'
140102388086864 # different memory address than before

Python 中的字符串是不可变的,因为它们只存储在一个地方(大部分),因此不能改变。

 >>> a = 'country'
>>> b = 'country'
>>> id(a) == id(b)
True
>>> a is b
True

关于python - 在 Python 中字符串是不可变的,那么为什么在 Python 中允许覆盖操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44783318/

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