Hướng dẫn what cannot be changed in python? - những gì không thể thay đổi trong python?

Đăng nhập vào tài khoản Python Barsels của bạn để lưu cài đặt screencast của bạn.

Vẫn chưa có tài khoản? Đăng ký tại đây.

Từ "thay đổi" là mơ hồ trong Python: chúng ta có hai loại "thay đổi" riêng biệt trong Python."change" is ambiguous in Python: we have two distinct types of "change" in Python.

Chúng ta có thể "thay đổi" một biến bằng cách thay đổi đối tượng mà biến đang chỉ vào. Chúng tôi làm điều đó thông qua một tuyên bố chuyển nhượng.

Chúng ta cũng có thể "thay đổi" một đối tượng thực tế thông qua một đột biến.

Chúng ta hãy xem cả hai loại thay đổi.

Bài tập

Hãy nói rằng chúng tôi có một biến

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 trỏ đến giá trị 4.

Chúng ta có thể sử dụng chức năng ID tích hợp để có được vị trí bộ nhớ của đối tượng Biến này

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 đang chỉ ra (mã định danh duy nhất này sẽ không bao giờ thay đổi trong vòng đời của một đối tượng):

>>> id(x)
140727864255408

Nếu chúng ta trỏ

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 vào một đối tượng mới, hãy nói một danh sách, đó là
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
5 sẽ thay đổi:

>>> x = [1, 2, 3]
>>> id(x)
2253221094088

Nếu chúng ta gán

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 cho
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2, điều này sẽ làm cho
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 trỏ đến cùng một vị trí bộ nhớ như
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2:

>>> y = x
>>> id (y)
2253221094088

Đây là loại thay đổi đầu tiên: gán. Chúng ta có thể thay đổi đối tượng nào một biến đang chỉ bằng cách thực hiện một bài tập.which object a variable is pointing to by doing an assignment.

Đột biến

Loại "thay đổi" thứ hai là đột biến. Chuyển đổi thay đổi biến, nhưng đột biến thay đổi đối tượng.mutation. Assignment changes variables, but mutation changes objects.

Hầu hết các đối tượng Python có thể được thay đổi sau khi chúng được tạo. Danh sách, bộ và từ điển đều có thể được thay đổi, trong khi các bộ dữ liệu, số và chuỗi không thể. Các đối tượng có thể được thay đổi được gọi là có thể thay đổi và hành động thay đổi một trong những đối tượng này là một đột biến.mutable and the act of changing one of these objects is a mutation.

Bài tập khá nhiều luôn liên quan đến một dấu hiệu

>>> y = x
>>> id (y)
2253221094088
0, trong khi đột biến có thể có rất nhiều hình thức: một hình thức là một cuộc gọi phương thức. Ví dụ: gọi phương thức
>>> y = x
>>> id (y)
2253221094088
1 trong danh sách.

Hãy lấy danh sách của chúng tôi từ trước đó cả

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 và
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 chỉ đến:

>>> x
[1, 2, 3]
>>> y
[1, 2, 3]
>>> id(x)
2253221094088
>>> id (y)
2253221094088

Và chúng tôi sẽ gọi phương thức

>>> y = x
>>> id (y)
2253221094088
1 trên biến
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 để thêm một mục mới vào danh sách của chúng tôi:

>>> x.append(4)
>>> x
[1, 2, 3, 4]

Hãy nhớ rằng cả

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 và
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 đều chỉ vào cùng một đối tượng, vì vậy nếu chúng ta nhìn vào
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6, nó dường như cũng sẽ thay đổi:

Lưu ý rằng chúng tôi đã không thực sự "thay đổi"

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 hoặc
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 vì
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
5 của hai biến này giống như trước đây:

>>> id(x)
2253221094088
>>> id (y)
2253221094088

Thay vào đó, chúng tôi đã thay đổi đối tượng mà hai biến này đang chỉ ra.

Bản tóm tắt

Để tóm tắt lại, nếu chúng ta có hai biến

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 và
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 và cả hai đều chỉ vào cùng một đối tượng trong bộ nhớ:

>>> x
[1, 2, 3, 4]
>>> y
[1, 2, 3, 4]
>>> id(x)
2253221094088
>>> id (y)
2253221094088

Nếu chúng tôi sau đó đã chỉ định lại

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 vào một danh sách mới:

>>> x = [4, 5, 6]
>>> x
[4, 5, 6]

Tôi đã thực hiện một bài tập có nghĩa là tôi đã thay đổi đối tượng nào biến

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 đang chỉ.assignment which means I've changed which object the variable
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 is pointing to.

Biến

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 đã thay đổi ở đây nhưng
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 không:

Bởi vì chúng tôi đã không chỉ

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 bất cứ nơi nào mới: chúng tôi chỉ chỉ
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 vào một đối tượng mới, do đó
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
5 đã thay đổi nhưng
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
5 của
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 giống như trước đây:

>>> id(x)
2253221617032
>>> id(y)
2253221094088

Nếu chúng ta trỏ

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 và
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 trở lại cùng một đối tượng và sau đó gọi một phương thức trên đối tượng này để yêu cầu nó tự đột biến:

>>> x = y
>>> x
[1, 2, 3, 4]
>>> x.pop()
4

Cả

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
2 và
>>> x = [1, 2, 3]
>>> id(x)
2253221094088
6 sẽ phản ánh sự thay đổi này:

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
0

Bởi vì hai biến này trỏ đến cùng một đối tượng:these two variables point to the same object:

>>> x = [1, 2, 3]
>>> id(x)
2253221094088
1

Vì vậy, hai loại thay đổi trong Python là:

  1. Nhiệm vụ, thay đổi đối tượng mà một biến chỉ ra, which changes which object a variable points to
  2. Đột biến, thay đổi chính một đối tượng (sẽ xuất hiện để thay đổi mọi biến chỉ vào đối tượng đó), which changes an object itself (that will appear to change every variable that points to that object)

Cái nào không thể được sửa đổi trong Python?

Khả năng bất biến của các bộ dữ liệu tuple là bất biến và do đó không thể có bất kỳ thay đổi nào trong chúng một khi chúng được tạo ra trong Python. Điều này là do chúng hỗ trợ các hoạt động trình tự tương tự như chuỗi. Chúng ta đều biết rằng chuỗi là bất biến. Toán tử chỉ mục sẽ chọn một phần tử từ một tuple giống như trong một chuỗi.Tuples are immutable and hence cannot have any changes in them once they are created in Python. This is because they support the same sequence operations as strings. We all know that strings are immutable. The index operator will select an element from a tuple just like in a string.

Điều gì không thể là một biến trong Python?

Một tên biến không thể bắt đầu với một số. Một tên biến chỉ có thể chứa các ký tự alpha-numeric và nhấn mạnh (A-Z, 0-9 và _). Tên biến là nhạy cảm trường hợp (tên, tên và tên là ba biến khác nhau). Các từ dành riêng (từ khóa) không thể được sử dụng đặt tên biến.. A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ). Variable names are case-sensitive (name, Name and NAME are three different variables). The reserved words(keywords) cannot be used naming the variable.

Các biến Python có thể được thay đổi không?

Các loại đột biến và bất biến Một số giá trị trong Python có thể được sửa đổi, và một số không thể. Điều này không bao giờ có nghĩa là chúng ta không thể thay đổi giá trị của một biến - nhưng nếu một biến chứa một giá trị của một loại bất biến, chúng ta chỉ có thể gán cho nó một giá trị mới. Chúng ta không thể thay đổi giá trị hiện có theo bất kỳ cách nào.Some values in python can be modified, and some cannot. This does not ever mean that we can't change the value of a variable – but if a variable contains a value of an immutable type, we can only assign it a new value. We cannot alter the existing value in any way.

Điều gì được thay đổi trong Python?

Hầu hết các đối tượng Python có thể được thay đổi sau khi chúng được tạo.Danh sách, bộ và từ điển đều có thể được thay đổi, trong khi các bộ dữ liệu, số và chuỗi không thể.Các đối tượng có thể được thay đổi được gọi là có thể thay đổi và hành động thay đổi một trong những đối tượng này là một đột biến.. Lists, sets, and dictionaries can all be changed, whereas tuples, numbers, and strings cannot. Objects that can be changed are called mutable and the act of changing one of these objects is a mutation.

Đối tượng Python nào có thể được thay đổi tại chỗ?

Mỗi đối tượng trong Python được phân loại là bất biến (không thể thay đổi) hay không.Về các loại cốt lõi, số, chuỗi và bộ dữ liệu là bất biến;Danh sách và từ điển không (chúng có thể được thay đổi tại chỗ một cách tự do).lists and dictionaries are not (they can be changed in-place freely).

Có thể thay đổi sau khi tạo Python?

Python được sử dụng trong các số, bộ dữ liệu, chuỗi, bộ đóng băng và các lớp do người dùng xác định với một số ngoại lệ.Họ không thể thay đổi, và giá trị của chúng và nó vẫn là vĩnh viễn một khi chúng được khởi tạo và do đó được gọi là bất biến.cannot change, and their values and it remains permanent once they are initialized and hence called immutable.