Python gán lại biến trong hàm

Chúng ta có thể "thay đổi" một biến bằng cách thay đổi đối tượng mà biến đó đang trỏ tới. Chúng tôi làm điều đó thông qua một câu lệnh gán

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 xét cả hai loại thay đổi

bài tập

Giả sử chúng ta có một biến

>>> y = x
>>> id [y]
2253221094088
1 trỏ đến giá trị 4

Chúng ta có thể sử dụng hàm có sẵn để lấy vị trí bộ nhớ của đối tượng mà biến này ___________1 đang trỏ tới [mã định danh duy nhất này sẽ không bao giờ thay đổi trong suốt vòng đời của một đối tượng]

Nếu chúng ta trỏ

>>> y = x
>>> id [y]
2253221094088
1 vào một đối tượng mới, chẳng hạn như một danh sách, nó sẽ thay đổi ____0_______4

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

Nếu chúng ta gán

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

>>> y = x
>>> id [y]
2253221094088

Đây là kiểu thay đổi đầu tiên. phân công. Chúng ta có thể thay đổi đối tượng mà một biến đang trỏ tới bằng cách thực hiện một phép gán

đột biến

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

Hầu hết các đối tượng Python có thể được thay đổi sau khi chúng được tạo. Tất cả các danh sách, bộ và từ điển đều có thể được thay đổi, trong khi bộ, số và chuỗi thì không thể. Các đối tượng có thể thay đổi được gọi là có thể thay đổi và hành động thay đổi một trong các đối tượng này là một đột biến

Phép gán gần như luôn liên quan đến dấu hiệu

>>> y = x
>>> id [y]
2253221094088
9, trong khi đột biến có thể có nhiều dạng. 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
>>> x
[1, 2, 3]
>>> y
[1, 2, 3]
>>> id[x]
2253221094088
>>> id [y]
2253221094088
0 trong danh sách

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

>>> y = x
>>> id [y]
2253221094088
1 và
>>> y = x
>>> id [y]
2253221094088
5 đều trỏ đến

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

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

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

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

Hãy nhớ rằng cả

>>> y = x
>>> id [y]
2253221094088
5 và
>>> y = x
>>> id [y]
2253221094088
1 đều trỏ đến cùng một đối tượng, vì vậy nếu chúng ta nhìn vào
>>> y = x
>>> id [y]
2253221094088
5 thì dường như nó cũng đã thay đổi

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

>>> y = x
>>> id [y]
2253221094088
1 hoặc
>>> y = x
>>> id [y]
2253221094088
5 bởi vì
>>> y = x
>>> id [y]
2253221094088
4 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 trỏ đến

Tóm lược

Tóm lại, nếu chúng ta có hai biến

>>> y = x
>>> id [y]
2253221094088
1 và
>>> y = x
>>> id [y]
2253221094088
5 và cả hai đều trỏ đến 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 sau đó chúng tôi đã chỉ định lại

>>> y = x
>>> id [y]
2253221094088
1 vào một danh sách mới

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

Tôi đã hoàn thành một nhiệm vụ có nghĩa là tôi đã thay đổi đối tượng mà biến

>>> y = x
>>> id [y]
2253221094088
1 đang trỏ tới

Biến

>>> y = x
>>> id [y]
2253221094088
1 đã thay đổi ở đây nhưng
>>> y = x
>>> id [y]
2253221094088
5 thì không

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

>>> y = x
>>> id [y]
2253221094088
5 bất cứ nơi nào mới. chúng tôi chỉ trỏ
>>> y = x
>>> id [y]
2253221094088
1 vào một đối tượng mới, vì vậy
>>> y = x
>>> id [y]
2253221094088
4 của nó đã thay đổi nhưng
>>> y = x
>>> id [y]
2253221094088
4 của
>>> y = x
>>> id [y]
2253221094088
5 vẫn giống như trước đây

>>> id[x]
2253221617032
>>> id[y]
2253221094088

Nếu chúng ta trỏ

>>> y = x
>>> id [y]
2253221094088
1 và
>>> y = x
>>> id [y]
2253221094088
5 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ự thay đổi

Tôi có thể thay đổi một biến trong hàm Python không?

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 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 giá trị thuộc loại không thể thay đổi, thì chúng ta chỉ có thể gán giá trị mới cho biến đó. We cannot alter the existing value in any way.

Bạn có thể thay đổi biến toàn cục trong hàm Python không?

Từ khóa toàn cầu. Từ khóa toàn cầu được sử dụng để sửa đổi biến toàn cầu bên ngoài phạm vi và ý nghĩa hiện tại của nó. Nó được sử dụng để thực hiện các thay đổi trong biến toàn cục trong ngữ cảnh cục bộ. Từ khóa 'Toàn cầu' cũng được sử dụng để tạo hoặc khai báo một biến toàn cục bên trong một hàm .

Có thể gán lại một biến cho một loại khác không?

Bạn có thể gán lại loại [loại, kích thước và độ phức tạp] của một biến sau lần gán ban đầu nếu mỗi lần xuất hiện của biến chỉ có thể có một loại . Trong trường hợp này, biến được đổi tên trong mã được tạo để tạo nhiều biến độc lập.

Các chức năng có thể thay đổi các biến?

Các hàm có thể truy cập các biến toàn cục và sửa đổi chúng . Sửa đổi các biến toàn cục trong một hàm được coi là thực hành lập trình kém. Tốt hơn là gửi một biến dưới dạng tham số [hoặc để nó được trả về trong câu lệnh 'return'].

Chủ Đề