gpt4 book ai didi

python - 在 Python 中卡住?

转载 作者:太空狗 更新时间:2023-10-29 17:41:01 24 4
gpt4 key购买 nike

我用 Python 编程有一段时间了,最​​近才开始在工作中使用 Ruby。语言非常相似。然而,我刚刚遇到了一个 Ruby 特性,我不知道如何在 Python 中复制它。这是 Ruby 的 freeze 方法。

irb(main):001:0> a = [1,2,3]
=> [1, 2, 3]
irb(main):002:0> a[1] = 'chicken'
=> "chicken"
irb(main):003:0> a.freeze
=> [1, "chicken", 3]
irb(main):004:0> a[1] = 'tuna'
TypeError: can't modify frozen array
from (irb):4:in `[]='
from (irb):4

有没有办法在 Python 中模仿这个?

编辑:我意识到我让它看起来像是只用于列表;在 Ruby 中,freezeObject 上的一个方法,因此您可以使任何对象不可变。对于造成的困惑,我深表歉意。

最佳答案

>>> a = [1,2,3]
>>> a[1] = 'chicken'
>>> a
[1, 'chicken', 3]
>>> a = tuple(a)
>>> a[1] = 'tuna'
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
a[1] = 'tuna'
TypeError: 'tuple' object does not support item assignment

另外,比照。 setfrozensetbytearraybytes

数字、字符串本身是不可变的:

>>> a = 4
>>> id(a)
505408920
>>> a = 42 # different object
>>> id(a)
505409528

关于python - 在 Python 中卡住?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3942825/

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