![]() |
1
219
弗斯特
|
![]() |
2
68
字符串对象本身是不可变的。
变量,
考虑:
|
![]() |
3
53
变量a指向对象“Dog”。最好把Python中的变量看作一个标签。您可以将标签移动到不同的对象,这是您更改时所做的操作
然而,不变性是指对象,而不是标签。
如果你尝试过
因为字符串不支持项赋值,所以它们是不可变的。 |
![]() |
4
30
只有当我们能够更改内存位置中保存的值而不更改内存位置本身时,某些东西才是可变的。 诀窍是:如果你发现更改前后的内存位置是相同的,那么它是可变的。 例如,list是可变的。怎么用?
字符串是不可变的。我们如何证明这一点?
我们得到 因此,我们未能对字符串进行变异。这意味着字符串是不可变的。 在重新分配时,您可以更改变量以指向新位置本身。在这里,您没有对字符串进行突变,而是对变量本身进行了突变。以下是你正在做的事情。
|
![]() |
5
14
考虑:
请注意,当我在变量中存储相同的值两次时,十六进制内存位置没有改变。当我存储不同的值时,它确实发生了变化。字符串是不可变的。不是因为狂热,而是因为在内存中创建新对象会带来性能损失。变量
|
![]() |
6
12
变量只是指向对象的标签。对象是不可变的,但如果你愿意,你可以让标签指向一个完全不同的对象。 |
![]() |
7
7
声明
内存:
内存:
最后,
内存:
|
|
8
7
数据与其关联的标签之间存在差异。例如,当你这样做的时候
数据
在您的程序中
|
![]() |
9
6
|
![]() |
10
4
Python字符串是不可变的。然而,
|
![]() |
11
4
Python字符串对象是不可变的。 例子:
在这个例子中,我们可以看到,当我们在a中分配不同的值时,它不会改变。创建了一个新对象。
发生错误。 |
![]() |
12
2
变量可以指向他们想要的任何地方。。 如果执行以下操作,将抛出错误:
|
![]() |
13
2
“mutable”意味着我们可以更改字符串的内容, “immutable”意味着我们不能添加额外的字符串。
|
![]() |
14
2
|
![]() |
15
1
不可改变,不是吗?! 变量变化部分已经讨论过了。 |
![]() |
16
1
将此添加到您的示例中
我在博客中发现的一个更精确的解释是:
博客链接: https://jeffknupp.com/blog/2012/11/13/is-python-callbyvalue-or-callbyreference-neither/ |
|
17
1
对上述答案再加一点。
这意味着我们已经对变量进行了突变
和
考虑以下代码:
现在,
因此
|
![]() |
18
1
内置功能
最初,'a'存储在139831803293008内存位置,因为如果您尝试修改和重新分配引用,python中的字符串对象是不可变的。该引用将被删除,并将成为指向新内存位置的指针(13983180329 3120)。 |
![]() |
19
0
总结:
不是不可变的:
免疫:
这是Python 3中的一个错误,因为它是不可变的。Python 2中没有错误,因为它显然不是不可变的。 |
|
20
-1
我们只是将两个字符串值连接起来。我们从不改变(a)的值。刚才(a)表示另一个具有“狗”值的内存块。因为在后端,一个变量永远不会同时表示两个内存块。连接前(a)的值是“dog”。但在那之后(a)表示“狗”,因为现在(a)在后端表示具有“狗”值的块。“dog”是由(b)表示的,在(b)代表“dog”之前,“dog”不会被计为垃圾值。 令人困惑的是,我们在后端用相同的变量名表示内存块(包含数据或信息)。 |
|
21
-2
你可以使numpy数组不可变,并使用第一个元素:
那么:
或
|
![]() |
22
-2
|
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |