Hướng dẫn destructor in python example - hàm hủy trong ví dụ python
Xem thảo luận Show Cải thiện bài viết Lưu bài viết Xem thảo luận Cải thiện bài viết Lưu bài viết Đọc def __del__(self): # body of destructor Bàn luận A reference to objects is also deleted when the object goes out of reference or when the program ends. Python3Các hàm tạo trong Pythondestructors được gọi khi một vật thể bị phá hủy. Trong Python, các chất phá hủy không cần thiết nhiều như trong C ++ vì Python có bộ thu gom rác tự động xử lý bộ nhớ. Nó được gọi là khi tất cả các tham chiếu đến đối tượng đã bị xóa, tức là khi một đối tượng được thu thập rác. Lưu ý: Một tham chiếu đến các đối tượng cũng bị xóa khi đối tượng đi ra khỏi tham chiếu hoặc khi chương trình kết thúc. & NBSP; Ví dụ 1: Đây là ví dụ đơn giản về phá hủy. Bằng cách sử dụng từ khóa DEL, chúng tôi đã xóa tất cả các tài liệu tham khảo của đối tượng ‘obj, do đó, bộ hủy đã tự động gọi. & Nbsp; Employee created. Destructor called, Employee deleted.0 Employee created. Destructor called, Employee deleted.1 Employee created. Destructor called, Employee deleted.2 Employee created. Destructor called, Employee deleted.3 Employee created. Destructor called, Employee deleted.4
Employee created. Destructor called, Employee deleted.0 Employee created. Destructor called, Employee deleted.1 Employee created. Destructor called, Employee deleted.2 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called3 Employee created. Destructor called, Employee deleted.4
Employee created. Destructor called, Employee deleted.7 self Output: Employee created. Destructor called, Employee deleted.
Python3Các hàm tạo trong Pythondestructors được gọi khi một vật thể bị phá hủy. Trong Python, các chất phá hủy không cần thiết nhiều như trong C ++ vì Python có bộ thu gom rác tự động xử lý bộ nhớ. Nó được gọi là khi tất cả các tham chiếu đến đối tượng đã bị xóa, tức là khi một đối tượng được thu thập rác. Lưu ý: Một tham chiếu đến các đối tượng cũng bị xóa khi đối tượng đi ra khỏi tham chiếu hoặc khi chương trình kết thúc. & NBSP; Ví dụ 1: Đây là ví dụ đơn giản về phá hủy. Bằng cách sử dụng từ khóa DEL, chúng tôi đã xóa tất cả các tài liệu tham khảo của đối tượng ‘obj, do đó, bộ hủy đã tự động gọi. & Nbsp; Employee created. Destructor called, Employee deleted.0 Employee created. Destructor called, Employee deleted.1 Employee created. Destructor called, Employee deleted.2 Employee: 0Employee created. Destructor called, Employee deleted.4
Employee created. Destructor called, Employee deleted.0 Employee created. Destructor called, Employee deleted.1 Employee: 9
Employee created. Destructor called, Employee deleted.7 self Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called5 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called6 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called7
Employee created. Destructor called, Employee deleted.1 Employee created. Destructor called, Employee deleted.2 def 4Employee created. Destructor called, Employee deleted.4 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called8 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called9 Employee created. Destructor called, Employee deleted.1 Employee created. Destructor called, Employee deleted.2 __init__( 1Employee created. Destructor called, Employee deleted.4 Lưu ý: Chất phá hủy được gọi sau khi chương trình kết thúc hoặc khi tất cả các tham chiếu đến đối tượng bị xóa tức là khi số lượng tham chiếu trở thành 0, không phải khi đối tượng đi ra khỏi phạm vi. Ví dụ 2: Ví dụ này đưa ra lời giải thích về ghi chú đã đề cập ở trên. Ở đây, lưu ý rằng bộ hủy diệt được gọi sau khi ‘chương trình kết thúc được in. & Nbsp; Employee created. Destructor called, Employee deleted.1 Employee created. Destructor called, Employee deleted.2 __init__( 8Employee created. Destructor called, Employee deleted.4 Output: Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called
Python3Các
Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called5 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called6 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called7
Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called9 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called5 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called6 __init__( 5Lưu ý: Một tham chiếu đến các đối tượng cũng bị xóa khi đối tượng đi ra khỏi tham chiếu hoặc khi chương trình kết thúc. & NBSP; Ví dụ 1: Đây là ví dụ đơn giản về phá hủy. Bằng cách sử dụng từ khóa DEL, chúng tôi đã xóa tất cả các tài liệu tham khảo của đối tượng ‘obj, do đó, bộ hủy đã tự động gọi. & Nbsp;
Employee created. Destructor called, Employee deleted.0 Employee created. Destructor called, Employee deleted.1 Employee created. Destructor called, Employee deleted.13
Employee created. Destructor called, Employee deleted.7 self Employee created. Destructor called, Employee deleted.20 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called5 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called6 Calling Create_obj() function... Making Object... Employee created function end... Program End... Destructor called7circular reference. Generally, Python’s garbage collector which is used to detect these types of cyclic references would remove it but in this example the use of custom destructor marks this item as “uncollectable”. Simply, it doesn’t know the order in which to destroy the objects, so it leaves them. Therefore, if your instances are involved in circular references they will live in memory for as long as the application run. |