Tôi đã lập trình bằng Python trong một thời gian và gần đây đã bắt đầu sử dụng Ruby tại nơi làm việc. Các ngôn ngữ rất giống nhau. Tuy nhiên, tôi đã gặp một tính năng của Ruby mà tôi không biết cách sao chép bằng Python. Đó là phương pháp freeze
của Ruby.Đóng băng bằng Python?
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
Có cách nào để bắt chước điều này bằng Python không?
EDIT: Tôi nhận ra rằng tôi đã làm cho nó có vẻ như thế này chỉ dành cho các danh sách; trong Ruby, freeze
là một phương thức trên Object
để bạn có thể thực hiện bất kỳ đối tượng nào không thay đổi. Tôi xin lỗi vì sự hiểu nhầm.
Giá trị của các lần lặp 'đóng băng' là gì? –
Bạn có thể phụ thuộc vào chúng giống nhau trong mọi trường hợp, trên nhiều luồng, v.v., và không phải lo lắng về đối tượng đang được tham chiếu ở nhiều nơi bởi vì nó sẽ không thay đổi từ bên dưới bạn. – kerkeslager