Đưa hàm và cú pháp hủy đối tượng trong python

Trong bài viết này, chúng ta sẽ tìm hiểu tất cả về Destructor trong Python. Hàm hủy trong Python là một phương thức đặc biệt được gọi tự động khi đối tượng của lớp bị xóa

Trước khi xem qua bài viết này, bạn phải có kiến ​​thức cơ bản về hàm tạo Python. Trong hướng dẫn này, chúng ta sẽ tìm hiểu hàm hủy Python cùng với một số ví dụ khác

Tiêu đề nội dung

Hàm hủy trong Python

Hàm hủy trong Python là một phương thức đặc biệt hoặc ma thuật được gọi tự động khi đối tượng bị xóa. Hàm tạo của Python gần giống với hàm hủy trong Python

Sự khác biệt duy nhất giữa hàm tạo và hàm hủy là, Trình tạo được gọi tự động khi đối tượng hoặc thể hiện của lớp được tạo và Trình hủy cũng được gọi tự động khi đối tượng hoặc thể hiện bị hủy

Tạo hàm hủy trong Python

Để tạo hàm hủy trong Python, bạn phải sử dụng phương thức đặc biệt __del__[]

Cú pháp của Destructor

Cú pháp của Destructor như sau


def __del__[self]:
	// Body of the destructor

Ví dụ về hàm hủy Python

Sau đây chúng tôi sẽ lấy một số ví dụ để hiểu về hàm hủy trong Python để bạn có thể dễ dàng hiểu về hàm hủy

Ví dụ


class Student:
	def __init__[self, name, age]:
		self.name = name
		self.age = age

	def printDetail[self]:
		print[f"My name is {self.name} and I am {self.age} years old."]

	def __del__[self]:
		print[f"{self.name} student is deleted."]


s1 = Student["Vishvajit Rao", 22]
s1.printDetail[]
del s1

đầu ra


My name is Vishvajit Rao and I am 22 years old.
Vishvajit Rao student is deleted.

Trong ví dụ trên, Destructor được gọi khi đối tượng s1 bị xóa bằng từ khóa del

Ghi chú. Tham chiếu đối tượng cũng bị xóa khi đối tượng hết tham chiếu hoặc chương trình kết thúc

Ví dụ


class Student:
	def __init__[self, name, age]:
		self.name = name
		self.age = age

	def printDetail[self]:
		print[f"My name is {self.name} and I am {self.age} years old."]

	def __del__[self]:
		print[f"{self.name} student is deleted."]


s1 = Student["Ankit", 25]
s1.printDetail[]

đầu ra


My name is Ankit and I am 25 years old.
Ankit student is deleted.

Trong ví dụ trên, Destructor được gọi, khi chương trình kết thúc

Ghi chú. -  Destructor trong Python cũng được gọi tự động khi chương trình kết thúc hoặc khi tất cả các đối tượng bị xóa.

Ví dụ


class Student:
	def __init__[self, name, age]:
		self.name = name
		self.age = age

	def printDetail[self]:
		print[f"My name is {self.name} and I am {self.age} years old."]

	def __del__[self]:
		print[f"{self.name} student is deleted."]


s1 = Student["Ankit", 25]
s1.printDetail[]
print["Program ends"]

đầu ra


My name is Ankit and I am 25 years old.
Program ends
Ankit student is deleted.

Ưu điểm của việc sử dụng hàm hủy trong Python

Dưới đây là một số ưu điểm của việc sử dụng hàm hủy trong Python, Những ưu điểm này rất quan trọng đối với bạn nếu bạn làm việc với hàm hủy trong Python

  • Từ việc sử dụng hàm hủy trong Python, các đối tượng không cần thiết sẽ tự động bị xóa, Điều này giải phóng không gian bộ nhớ được gọi là bộ sưu tập rác
  • Bạn không cần gọi hàm hủy theo cách thủ công. Đó là một phương thức đặc biệt được gọi tự động khi các đối tượng bị xóa

Phần kết luận

Trong bài viết này, bạn đã tìm hiểu tất cả về hàm hủy Python cùng với các ví dụ. Hàm hủy trong Python là tốt nhất để thu gom rác vì nó giải phóng không gian trong bộ nhớ sau khi đối tượng bị xóa

Nếu bạn thích bài viết này, vui lòng chia sẻ và tiếp tục truy cập các hướng dẫn về python

Hàm hủy trong Python là gì?

trả lời. - Hàm hủy trong Python là một phương thức đặc biệt được gọi tự động khi thể hiện của lớp bị xóa

Làm thế nào để bạn phá hủy một đối tượng trong Python?

trả lời. - Để hủy một đối tượng trong Python, sử dụng từ khóa del

__del__ trong Python là gì?

trả lời. - Phương thức __del__ là một phương thức đặc biệt trong Python được gọi tự động khi đối tượng bị hủy. Phương pháp này còn được gọi là Destructor

__init__ trong Python là gì?

Con kiến. - __init__ trong Python là một phương thức đặc biệt được gọi tự động khi thể hiện của một đối tượng của lớp được tạo

Hàm hủy trong chương trình đóng vai trò đảo ngược các thao tác do hàm tạo thực hiện dùng để xóa đối tượng của lớp do hàm tạo tạo ra trong chương trình. Giống như bất kỳ ngôn ngữ lập trình hướng đối tượng nào khác được áp dụng để phát triển hệ thống hoặc ứng dụng dựa trên web, Python cho phép hầu hết tất cả các tính năng chức năng xử lý các lớp và đối tượng. Các hàm hủy chủ yếu được sử dụng như một phương pháp sắp xếp gọn gàng trong các chương trình, như một cách để tổ chức mã và triển khai các tiêu chuẩn mã hóa. Hàm hủy được định nghĩa bằng ‘__del__[]’ làm từ khóa của mã python

cú pháp

Bắt đầu khóa học phát triển phần mềm miễn phí của bạn

Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác

def __del__[self]:
        #destructor body

Như mọi người có thể thấy, __del__ là từ khóa được sử dụng để xác định hàm hủy. Khi nó được gọi, tất cả các tham chiếu đến đối tượng đó sẽ bị xóa, còn được gọi là bộ sưu tập rác

Ví dụ về Destructor trong Python

Hãy xem các ví dụ khác nhau về hàm hủy trong python để hiểu rõ hơn

Ví dụ 1

Mã số

________số 8

đầu ra

“Tạp hóa” là lớp được định nghĩa với các phương thức đặc biệt của nó. hàm tạo & hàm hủy

Vì vậy, người ta có thể nhìn thấy một khi đối tượng của lớp “Tạp hóa” được tạo. Nó tự động gọi __init__, là hàm tạo của lớp. Tuy nhiên, khi “del obj” được thực thi để xóa một đối tượng, phương thức hủy sẽ tự động được gọi

Ví dụ #2

Mã số

class Text:
    def __del__[self]:
        print ['Text deleted']
a = Text[]
del a
a = Text[]
b = a
del b
del a

đầu ra

Văn bản là một lớp, “a” là một đối tượng tham chiếu đến lớp. “b” bản sao địa phương của tài liệu tham khảo đó “a”. Vì vậy, khi b bị xóa, phương thức này không được gọi, vì nó chỉ giữ bản sao cục bộ

Gói phát triển phần mềm tất cả trong một[hơn 600 khóa học, hơn 50 dự án]

Giá
Xem khóa học

600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 6 [84.533 xếp hạng]

Ưu điểm của Destructor trong Python

Như đã nói trước đây, hàm hủy không được sử dụng nhiều trong python như nó được sử dụng trong Java, C++. Tuy nhiên, khái niệm vẫn giữ nguyên. Dưới đây là một số lợi thế của việc sử dụng nó trong các chương trình

  • Các đối tượng không cần thiết sẽ tự động bị xóa. Điều này giải phóng không gian bộ nhớ, được gọi là bộ sưu tập Rác
  • Ưu điểm cũng nằm ở chỗ nó tự động gọi

Một số bước cần quan tâm khi sử dụng hàm hủy

1. Python không biết thứ tự phá hủy các đối tượng sẽ an toàn hơn khi có thể giữ các tham chiếu vòng tròn với nhau. Do đó, mọi người khuyên bạn nên sử dụng “đóng” một cách rõ ràng sau mỗi chức năng. Nhưng trong trường hợp xảy ra ngoại lệ, việc quản lý phương thức đóng sẽ gặp rắc rối. Do đó, sử dụng hàm hủy sẽ tốt hơn, hãy ghi nhớ các tham chiếu theo chu kỳ

2. Các tham chiếu theo chu kỳ nếu nó không được xử lý tốt, rất có thể là các bản trừu tượng bị rò rỉ, cộng với thiết kế xấu.
Điều tuyệt vời nhất là. tài nguyên nên được xử lý bởi đối tượng cấp thấp nhất của lớp.

3. Khi ai đó thực sự cần sử dụng các tham chiếu tuần hoàn đến các đối tượng trong mã phức tạp, Python cung cấp một giải pháp tốt cho nó dưới dạng tên mô-đun. yếu kém. Điều đó có nghĩa là các tham chiếu yếu được cung cấp cho tham chiếu, điều này cuối cùng giúp triển khai bộ đệm và không còn giữ cho đối tượng lớn tồn tại. Khi một đối tượng lớn không còn tồn tại, điều đó có nghĩa là nó xuất hiện trong bộ đệm

Hãy cùng xem nó thông qua một đoạn mã nhỏ để có được sự hiểu biết sáng suốt

Mã số


class Student:
	def __init__[self, name, age]:
		self.name = name
		self.age = age

	def printDetail[self]:
		print[f"My name is {self.name} and I am {self.age} years old."]

	def __del__[self]:
		print[f"{self.name} student is deleted."]


s1 = Student["Vishvajit Rao", 22]
s1.printDetail[]
del s1
0

đầu ra

Như mọi người có thể thấy, “r” là một tham chiếu yếu đến đối tượng “c”

Nếu chúng ta tạo một tham chiếu phương thức tới “r” như c2 = r[]. Sau đó, “c” và “c2” phải giống nhau vì chúng đề cập đến cùng một. Xem ví dụ hiển thị bên dưới

Trong trường hợp xóa đối tượng chính, đối tượng tham chiếu sẽ mất sự tồn tại của nó. Xem ví dụ hiển thị bên dưới

Như mọi người có thể nhận thấy, kết quả print[r[]] là “Không”. Trong trường hợp đó.
gc. coll[] sẽ dẫn đến 0.

4. __del__ không nên nhầm lẫn với del trong python. __del__ là một phương thức đặc biệt của lớp hàm hủy và “del” được sử dụng để hủy một biến được xác định trong môi trường python. Cả hai là hai điều hoàn toàn khác nhau

Thích


class Student:
	def __init__[self, name, age]:
		self.name = name
		self.age = age

	def printDetail[self]:
		print[f"My name is {self.name} and I am {self.age} years old."]

	def __del__[self]:
		print[f"{self.name} student is deleted."]


s1 = Student["Vishvajit Rao", 22]
s1.printDetail[]
del s1
1

Phần kết luận

Sau khi xem qua nội dung trên, có thể nói hàm tạo và hàm hủy là một phần quan trọng của Python. Hàm hủy đóng vai trò then chốt trong việc quản lý bộ nhớ, nơi nó thực hiện nhiều tác vụ dọn dẹp trên các đối tượng được sử dụng trong lập trình. Xử lý các chương trình nhỏ có thể không cung cấp cho bạn bức tranh thực tế đằng sau việc sử dụng hàm hủy. Tuy nhiên, trong khi xử lý các chương trình ở cấp độ sản xuất hoặc bất kỳ dòng mã phức tạp nào, tầm quan trọng của hàm hủy có thể được hiểu rõ ràng, vì việc sử dụng bộ nhớ trở nên rất quan trọng ở đó. Ghi nhớ ý tưởng tham chiếu theo chu kỳ hoàn toàn có thể dẫn đến thiết kế tốt khi làm việc với hàm hủy

Bài viết được đề xuất

Đây là hướng dẫn về Destructor trong Python. Ở đây chúng ta thảo luận về khái niệm cơ bản, ưu điểm cùng với các ví dụ khác nhau về hàm hủy python. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –

Chức năng nào được sử dụng để hủy đối tượng?

hủy . Phá hủy đối tượng đã cho và tùy chọn đặt lại về trạng thái ban đầu. Nó được sử dụng để hủy một đối tượng, gọi hàm hủy hoặc bộ hoàn thiện của nó để nó không còn tham chiếu đến bất kỳ đối tượng nào khác.

Cú pháp của đối tượng trong Python là gì?

Đối tượng được tạo bằng tên lớp. Cú pháp được đưa ra dưới đây. cú pháp. = []

Cú pháp để tạo hàm hủy trong Python là gì?

Cú pháp hàm hủy trong Python . #body của hàm hủy def __del__[self]: #body of destructor . Ở đây, def là từ khóa dùng để định nghĩa một phương thức trong python. Phương thức __del __[]. Trong Python, __del __[] được gọi là phương thức hủy.

Làm cách nào để xóa một đối tượng trong Python?

Để xóa một đối tượng trong Python, chúng tôi sử dụng từ khóa 'del' .

Chủ Đề