Hướng dẫn where variable in python is stored? - biến trong python được lưu trữ ở đâu?

Phân bổ bộ nhớ có thể được định nghĩa là phân bổ một khối không gian trong bộ nhớ máy tính cho một chương trình. Trong phương pháp phân bổ và phân bổ bộ nhớ Python là tự động vì các nhà phát triển Python đã tạo ra một trình thu thập rác cho Python để người dùng không phải thực hiện bộ sưu tập rác thủ công.

Thu gom rác thải

Bộ sưu tập rác là một quá trình trong đó trình thông dịch giải phóng bộ nhớ khi không sử dụng để cung cấp cho nó cho các đối tượng khác. Tôi là một trường hợp không có tham chiếu nào chỉ vào một đối tượng trong bộ nhớ, tức là nó không được sử dụng như vậy, máy ảo có Bộ thu gom rác tự động xóa đối tượng đó khỏi bộ nhớ heap
Assume a case where no reference is pointing to an object in memory i.e. it is not in use so, the virtual machine has a garbage collector that automatically deletes that object from the heap memory

Lưu ý: Để biết thêm về bộ sưu tập rác, bạn có thể tham khảo bài viết này. For more on garbage collection you can refer to this article.

Đếm tham chiếu

Đếm tham chiếu hoạt động bằng cách đếm số lần một đối tượng được tham chiếu bởi các đối tượng khác trong hệ thống. Khi các tham chiếu đến một đối tượng được xóa, số lượng tham chiếu cho một đối tượng bị giảm. Khi số lượng tham chiếu trở thành 0, đối tượng được giải quyết.

Ví dụ: giả sử có hai hoặc nhiều biến có cùng một giá trị, vì vậy, máy ảo Python làm gì, thay vì tạo một đối tượng khác có cùng giá trị trong đống riêng tư, nó thực sự tạo ra biến thứ hai Giá trị hiện có trong đống riêng tư. Do đó, trong trường hợp của các lớp, có một số tài liệu tham khảo có thể chiếm một lượng lớn không gian trong bộ nhớ, trong trường hợp như vậy, việc đếm tính rất có lợi để bảo tồn bộ nhớ có sẵn cho các đối tượng khác

Example:

Phân bổ bộ nhớ trong Python

Có hai phần của bộ nhớ:

  • ngăn xếp bộ nhớ
  • bộ nhớ đống

Các phương thức/gọi phương thức và các tham chiếu được lưu trữ trong bộ nhớ ngăn xếp và tất cả các đối tượng giá trị được lưu trữ trong một đống riêng tư.stack memory and all the values objects are stored in a private heap.

Công việc của bộ nhớ ngăn xếp

Việc phân bổ xảy ra trên các khối bộ nhớ liền kề. Chúng tôi gọi nó là phân bổ bộ nhớ ngăn xếp vì phân bổ xảy ra trong ngăn xếp gọi hàm. Kích thước của bộ nhớ được phân bổ được biết đến với trình biên dịch và bất cứ khi nào một hàm được gọi, các biến của nó sẽ được phân bổ bộ nhớ trên ngăn xếp.

Đó là bộ nhớ chỉ cần thiết bên trong một cuộc gọi chức năng hoặc phương thức cụ thể. Khi một hàm được gọi, nó được thêm vào ngăn xếp cuộc gọi của chương trình. Bất kỳ gán bộ nhớ cục bộ nào như khởi tạo biến bên trong các hàm cụ thể đều được lưu trữ tạm thời trên ngăn xếp gọi hàm, trong đó nó bị xóa khi hàm quay lại và ngăn xếp cuộc gọi chuyển sang tác vụ tiếp theo. Phân bổ này vào một khối bộ nhớ tiếp giáp được xử lý bởi trình biên dịch bằng cách sử dụng các thói quen được xác định trước và các nhà phát triển không cần phải lo lắng về nó.

Example:

>>> id[peanut_butter]
10188960
0
>>> id[peanut_butter]
10188960
1

>>> id[peanut_butter]
10188960
2
>>> id[peanut_butter]
10188960
3
>>> id[peanut_butter]
10188960
4
>>> id[peanut_butter]
10188960
5

>>> id[peanut_butter]
10188960
2
>>> id[peanut_butter]
10188960
7
>>> id[peanut_butter]
10188960
4
>>> id[peanut_butter]
10188960
9

>>> id[peanut_butter]
10188960
2
>>> crunchy = 5
>>> crunchy
5
1
>>> id[peanut_butter]
10188960
4
>>> crunchy = 5
>>> crunchy
5
3

Công việc của bộ nhớ heap

Bộ nhớ được phân bổ trong khi thực hiện các hướng dẫn được viết bởi các lập trình viên. Lưu ý rằng tên Heap không liên quan gì đến cấu trúc dữ liệu heap. Nó được gọi là Heap vì nó là một đống không gian bộ nhớ dành cho các lập trình viên để phân bổ và phân bổ. Các biến cần thiết bên ngoài các cuộc gọi phương thức hoặc chức năng hoặc được chia sẻ trong nhiều chức năng trên toàn cầu được lưu trữ trong bộ nhớ heap.

Example:


Mở tủ bếp của bạn. Trong đó, bạn sẽ tìm thấy nhiều phương tiện lưu trữ thực phẩm. Hộp các tông, ziplocs, tupperware, túi nhựa được niêm phong bằng dây buộc xoắn và trọng tâm của cuộc thảo luận của chúng tôi, lọ lưu trữ. Bộ nhớ máy tính giống như một cái tủ chứa đầy lọ lưu trữ. Sử dụng Python, bạn đặt các giá trị vào lọ và sau đó bạn đặt một nhãn, một biến, trên bình, để bạn có thể tìm thấy giá trị của mình sau.

Lọ lưu trữ là vị trí của chúng tôi trong bộ nhớ, nơi tôi muốn giữ bơ đậu phộng và thạch. Giả sử tôi có giá trị bơ đậu phộng, 5. Chúng ta có thể thấy vị trí của địa chỉ bộ nhớ của giá trị đó với hàm ID [].

Hãy nghĩ về con số dài đó như một lọ lưu trữ.

Tôi có thể đặt một nhãn vào bình:

>>> peanut_butter = 5
>>> peanut_butter
5

Tôi có thể kiểm tra vị trí của giá trị được liên kết với Peanut_butter bằng cách chuyển biến của tôi cho hàm id [].

>>> id[peanut_butter]
10188960

Tôi cũng có thể đặt nhiều hơn một nhãn vào bình:

>>> crunchy = 5
>>> crunchy
5

Và kiểm tra vị trí của nó trong bộ nhớ:

Chúng ta có thể gán các biến cho các biến khác. Hãy để thay đổi giá trị của giòn trước:

>>> crunchy = 7
>>> peanut_butter = crunchy
>>> peanut_butter
7
>>> crunchy
7

Xem những gì xảy ra nếu chúng ta thay đổi giòn trở lại 5.

>>> crunchy = 5
>>> crunchy
5
>>> peanut_butter
7

Biến đổi Peanut_butter của chúng tôi đã thay đổi. Điều đó bởi vì khi chúng tôi gán nó cho giòn, như thế này:

>>> peanut_butter = crunchy

Chúng tôi đã vượt qua nó giá trị liên quan đến giòn, đó là 7. Ở đâu trên kệ là bình lưu trữ của chúng tôi là 7?

>>> id[peanut_butter]
10189024

Hãy nói rằng tôi có năm muỗng bơ đậu phộng trong lọ lưu trữ của mình:

Jelly thường được lưu trữ trong một thùng chứa nhỏ hơn, vì vậy hãy nói rằng tôi có ba muỗng:

Tôi có bao nhiêu muỗng bơ đậu phộng và thạch?

Hãy để chỉ định câu lệnh đó cho một biến.

>>> pbj = pb + j
>>> pbj
8

Tất cả những ẩn dụ thực phẩm này đang khiến tôi đói. Hãy để làm một chiếc bánh sandwich. Nếu chúng ta sử dụng hai muỗng bơ đậu phộng và một muỗng thạch, chúng ta cần gán các giá trị mới cho các biến của chúng ta với toán tử trừ như thế này:

>>> pb = pb - 2
>>> pb
3
>>> j = j - 1
>>> j
2

Bây giờ chúng ta còn lại bao nhiêu bơ đậu phộng và thạch?

>>> pbj = pb + j
>>> pbj
5

Ngon! Khi bạn đói để tìm hiểu thêm tất cả về các chuỗi trong chương tiếp theo

Các biến được lưu trữ ở đâu?

Các biến thường được lưu trữ trong RAM.Đây là trên đống [ví dụ: tất cả các biến toàn cầu thường sẽ đến đó] hoặc trên ngăn xếp [tất cả các biến được khai báo trong một phương thức/hàm thường đi đến đó].Ngăn xếp và đống đều là RAM, chỉ là các vị trí khác nhau.in RAM. This is either on the heap [e.g. all global variables will usually go there] or on the stack [all variables declared within a method/function usually go there]. Stack and Heap are both RAM, just different locations.

Làm thế nào để Python lưu trữ dữ liệu trong các biến?

Trong một số ngôn ngữ lập trình, bạn phải khai báo một biến trước khi sử dụng chúng hoặc xác định thông tin sẽ được lưu trữ trong đó, ví dụ: một số.Tuy nhiên, trong Python, chúng ta chỉ cần nhập tên của biến của chúng ta, theo sau là một dấu bằng và giá trị để gán cho nó.Điều này được gọi là gán một giá trị cho một biến.type the name of our variable, followed by an equals sign and a value to assign to it. This is called assigning a value to a variable.

Bài Viết Liên Quan

Chủ Đề