Vòng đời của các objects
Trước kia, chúng ta đã nói rằng vòng đời của các biến thực thể của một object là vòng đời của object đó. Cái gì
quyết định khoảng thời gian của đời sống object? Chúng ta đã biết rằng một object đi vào tồn tại khi class của
nó được khởi tạo thực thể. Khi nào một object chết? Trong Python, một object trở thành một ứng viên cho lăng mộ
khi chương trình cái tạo nó không còn tham chiếu đến nó. Ví dụ, phiên làm việc tiếp theo tạo 2 tham chiếu tới
cùng Student object:
>>> s = Student(“Sam”, 10)
>>> cscilll = [s]
>>> cscilll
[<__main__.Student instance at 0xllba2b0>]
>>> s
<__main__.Student instance at 0xllba2b0>
Code trông lạ trong các dấu ngoặc nhọn là cái gì Python hiển thị khi nó in ra dạng này của object trong IDLE shell.
Miễn là một trong những tham chiếu này còn sống, Student object có thể vẫn sống. Tiếp tục phiên làm việc này, chúng
ta bây giờ cắt đứt cả 2 tham chiếu đến Student object:
>>> s = None
>>> cscilll.pop()
<__main__.Student instance at 0xllba2b0>
>>> print(s)
None
>>> cscilll
[]
Student object vẫn tồn tại, nhưng máy ảo Python cuối cùng thanh lí nơi lưu giữ của nó suốt một quá trình gọi là
garbage collection. Cho tất cả các ý định và mục đích, object này đã hết hạn, và nơi lưu giữ của nó cuối cùng được
sử dụng để tạo các objects khác.
