2013-07-20 106 views
5

Trong C++, các biến cục bộ được lưu trữ trong ngăn xếp, trong khi dữ liệu được tạo bởi toán tử mới được lưu trữ trong heap. Vì vậy, những gì về các biến trong Python? Chúng được lưu trữ ở đâu?Các biến trong Python được lưu trữ ở đâu?

+0

Related: http://stackoverflow.com/questions/14546178/does-python-have-a-stack-heap-and-how-is-memory-managed –

+0

Liên quan: http://stackoverflow.com/question/2353552/cpython-nội bộ-những gì-được-lưu-on-the-stack-và-heap –

+0

@AshwiniChaudhary Cảm ơn rất nhiều! – injoy

Trả lời

5

sao chép từ Python documentation:

Quản lý bộ nhớ bằng Python liên quan đến một đống tin có chứa tất cả các đối tượng Python và cấu trúc dữ liệu. Việc quản lý heap riêng này được đảm bảo nội bộ bởi trình quản lý bộ nhớ Python. Trình quản lý bộ nhớ Python có các thành phần khác nhau xử lý các khía cạnh quản lý lưu trữ động khác nhau, như chia sẻ, phân đoạn, preallocation hoặc bộ nhớ đệm.

+0

Điều này là gây hiểu lầm - mặc dù từ quan điểm của mã C, các công cụ python nói chung là trên heap, python vẫn có stack cuộc gọi riêng của nó. – Marcin

+2

@Marcin: Đây là từ tài liệu Python chính thức và câu trả lời tương tự được đưa ra cho các câu hỏi được liên kết khác. Điều duy nhất để bổ sung ở đây là điều này cụ thể đối với CPython, dù sao đi nữa là việc triển khai Python được sử dụng rộng rãi nhất. – dkar

+0

Chỉ vì nó từ một tài liệu chính thức, nó không có nghĩa là nó áp dụng cho câu hỏi này. Trước hết, câu hỏi này là về các biến; thứ hai tài liệu là về những gì các thông dịch viên CPython trông giống như khi lập trình trong C. – Marcin

Các vấn đề liên quan