Hướng dẫn drop a variable in python - thả một biến trong python

Python là ngôn ngữ lập trình hướng đối tượng, nơi chúng ta không phải lo lắng về việc quản lý không gian bộ nhớ trong Python. Nó có "Trình quản lý bộ nhớ Python", chịu trách nhiệm phân bổ bộ nhớ và quản lý bộ nhớ, do đó không cần bất kỳ sự can thiệp thủ công nào. Tuy nhiên, đôi khi có những điều kiện yêu cầu có một cái nhìn trong không gian bộ nhớ.

Chúng ta hãy xem đơn vị bộ nhớ cơ bản nhất, hay còn gọi là các biến trong Python và xem cách bộ nhớ hoạt động trong khi xử lý chúng.

Một biến trong Python là gì?

Một biến thường được định nghĩa là một tên được gán cho không gian bộ nhớ đó giữ các giá trị. & Nbsp; bản thân từ 'biến' đề cập đến các giá trị có thể thay đổi cho cùng một không gian. tất cả & nbsp; ngôn ngữ lập trình. Bạn sẽ ngạc nhiên khi biết rằng, mọi thứ trong Python là một đối tượng. Biến, danh sách, bộ dữ liệu và thậm chí các lớp là các trường hợp.

Các biến là các tham chiếu đến các đối tượng thực tế giữ giá trị đã cho. Đó là lý do tại sao trong Python, chúng tôi không phải khai báo các biến hoặc loại dữ liệu của chúng trước khi sử dụng chúng. That's why in Python we don't have to declare the variables or their data types before using them.

Ví dụ:

# declaring variable without data type
var1 = 5
print(var1)
# type of variable 1
print(type(var1))

# using variable without prior declaration
for i in range(2):
    print(i)

Xem cách chúng tôi đã khai báo một biến và sử dụng một biến mà không gặp rắc rối về việc khai báo các loại dữ liệu hoặc khởi tạo.

Output:

Lưu ý cách & nbsp; gõ (var1) trả về. Điều này ngụ ý rằng biến VAR1 là một thể hiện của các số nguyên lớp.

Nghe có vẻ khó hiểu? & NBSP; Đừng lo lắng, hãy để & NBSP; hãy xem & nbsp; làm thế nào bộ nhớ & nbsp; quản lý xảy ra trong Python khi một biến được khai báo.

Bộ nhớ được quản lý như thế nào trong Python?

Trong khi làm việc với Python, có hai loại bộ nhớ:

1. Bộ nhớ tĩnh

2. Bộ nhớ động

Python sử dụng phân bổ bộ nhớ động, tức là phân bổ bộ nhớ xảy ra trong thời gian chạy. & NBSP; Phân bổ bộ nhớ động sử dụng cấu trúc dữ liệu heap để thực hiện. Bên cạnh cấu trúc dữ liệu heap, cấu trúc dữ liệu Stack & NBSP; được sử dụng & nbsp; để lưu trữ bộ nhớ tĩnh. Đừng nhầm lẫn giữa bộ nhớ tĩnh và bộ nhớ động trong Python.The dynamic memory allocation uses a Heap data structure for implementation. Besides heap data structure,the Stack data structure is used to store the static memory. Don't get confused between static memory and dynamic memory in Python.

Ở đây, bộ nhớ tĩnh đề cập đến ngăn xếp gọi chức năng. Nhớ lại chuỗi cuộc gọi chức năng được lưu trữ bằng cách sử dụng ngăn xếp trong đệ quy. & Nbsp; so với các ngôn ngữ lập trình khác, Python không liên quan đến & nbsp; Quản lý bộ nhớ thủ công.

Python có một người quản lý Python quản lý & nbsp; dữ liệu ứng dụng trong bộ nhớ, do đó không cần phải can thiệp nhiều trong khi xử lý không gian bộ nhớ.

Điều gì xảy ra khi chúng ta tuyên bố một biến trong Python?

Các biến trong Python là các tham chiếu đến không chỉ các hằng số hoặc giá trị, mà chúng còn được tham chiếu & nbsp; đến các đối tượng. Khi chúng tôi khai báo một biến trong Python, nó sẽ tạo ra một đối tượng trong không gian heap riêng tư lưu trữ giá trị của biến. Trong khi biến được tạo trong bộ nhớ ngăn xếp làm tham chiếu đến đối tượng nói trên.When we declare a variable in Python, it creates an object in the Private Heap Space that stores the variable's value. While the variable gets created in the Stack memory as a reference to the said object.

Khó hiểu? Hãy xem xét một ví dụ. Giả sử bạn cần phải khai báo một biến; Hãy xem xét tên biến 'A,' với giá trị 5! Bây giờ, hãy nhìn vào hình ảnh dưới đây để xem những gì diễn ra đằng sau hậu trường!

Hướng dẫn drop a variable in python - thả một biến trong python

Như bạn thấy, đối tượng, lưu trữ giá trị (5) được tạo trong không gian heap riêng trong khi biến/tham chiếu đến đối tượng đó được tạo trong bộ nhớ ngăn xếp. Bây giờ chúng ta hãy xem xét việc tạo một biến khác, giả sử 'B', với cùng giá trị với 'A'. Bạn có thể đoán được bộ nhớ & nbsp; phân bổ sẽ diễn ra như thế nào không?

Hướng dẫn drop a variable in python - thả một biến trong python

& nbsp; Trình quản lý bộ nhớ Python sẽ tạo một tham chiếu khác 'B' cho cùng một đối tượng (lưu trữ 5) được tham chiếu bởi 'A' vì nó có cùng giá trị. Kết quả là, sẽ có hai tham chiếu đến cùng một đối tượng. Bất kỳ thay đổi nào trong một trong các tài liệu tham khảo sẽ dẫn đến sự phá vỡ liên kết tham chiếu của chúng đến đối tượng đó (lưu trữ 5) & nbsp; Và nói, việc tạo ra một đối tượng khác.

Bạn có thể nghĩ về các biến trong Pythons là con trỏ (như trong C và C ++) cho các đối tượng.

Tại sao chúng ta cần xóa các biến?

Quản lý bộ nhớ là một trong những yếu tố xem xét chính khi xử lý phát triển phần mềm bằng Python hoặc bất kỳ ngôn ngữ lập trình nào. Bạn phải tự hỏi tại sao quản lý bộ nhớ này lại quan trọng như vậy. Bạn thậm chí không nhận thấy nó ảnh hưởng đến mã của bạn như thế nào trong khi viết bất kỳ chương trình nào.

Chà, hãy để tôi nói với bạn, điều này là do bạn chưa xử lý phần mềm lớn làm việc với một lượng lớn dữ liệu hoặc dữ liệu lớn. Khi xử lý dữ liệu lớn, bạn sẽ nhận thấy cách quản lý bộ nhớ này ảnh hưởng đến hiệu quả tổng thể và thời gian xử lý của phần mềm của bạn.

Cấu trúc dữ liệu đã được giới thiệu vì lý do này! & NBSP;

Làm thế nào để xóa các biến hoạt động?

Như đã nói trước đó, Python có Trình quản lý bộ nhớ Python, chịu trách nhiệm phân bổ hoặc giảm phân bổ bộ nhớ. Bộ nhớ trong Python chứa các đối tượng và các cấu trúc dữ liệu khác được sử dụng trong chương trình.

Vì vậy, khi một biến (tham chiếu đến một đối tượng) không còn được sử dụng, trình quản lý bộ nhớ Python sẽ giải phóng không gian, tức là nó loại bỏ đối tượng không cần thiết. Quá trình loại bỏ các đối tượng này, không còn được sử dụng, được gọi là Bộ sưu tập rác. & NBSP;This process of removing objects, which are no longer in use, is known as Garbage Collection. 

Bộ sưu tập rác

Bộ sưu tập rác là một quá trình chạy trong nền của chương trình Python của bạn. Ngay khi bạn thực hiện chương trình Python, người thu gom rác cũng bắt đầu trong nền. Do đó, một người thu gom rác không cần phải được kích hoạt hoặc gọi cụ thể. Quá trình này chạy một cách thường xuyên và đòi lại không gian bộ nhớ từ các đối tượng không còn cần thiết cho chương trình. & NBSP;

Làm thế nào để người thu gom rác xác định xem một biến (đối tượng) sẽ bị xóa? & Nbsp; tốt, nó khá đơn giản. Vì Python có mọi thứ như đối tượng, do đó mỗi đối tượng phải có tài liệu tham khảo. Như đã thảo luận ở trên, một đối tượng có thể có nhiều hơn một tài liệu tham khảo. Ngay khi bạn tạo một biến, đối tượng của nó sẽ được tạo trong không gian heap riêng. & Nbsp;Well, it's pretty simple. Since Python has everything as objects, thus each object must have references. As discussed above, an object can have more than one reference. As soon as you create a variable, its object gets created in the Private Heap Space. 

Bây giờ, hãy quay lại ví dụ của chúng tôi. Vì đối tượng (lưu trữ 5) có hai tài liệu tham khảo 'A' và 'B'. Bây giờ giả sử rằng bạn phải xóa biến a. Bạn nghĩ gì có thể xảy ra trong bộ nhớ?

Hướng dẫn drop a variable in python - thả một biến trong python

Vì vậy, đối tượng sẽ không bị xóa chính nó, vì nó có một tham chiếu (biến 'B') chỉ vào nó. Nhưng tham chiếu (biến 'A') bị xóa.

Số lượng tham chiếu đến một đối tượng được lưu trữ. Điều này được gọi là đếm tham chiếu trong Python.

Vì vậy, nếu chúng ta nói về ví dụ trên, đối tượng của chúng ta (lưu trữ 5) có 2 tài liệu tham khảo, biến 'A' và 'B'. Do đó, số lượng tham chiếu cho đối tượng của chúng tôi (lưu trữ 5) sẽ là 2. Trình thu gom rác sẽ không & nbsp; loại bỏ đối tượng này cho đến khi số lượng tham chiếu của nó trở về 0. Điều này có nghĩa là cho đến khi & nbsp; cả hai biến ('a' và 'b') bị xóa, đối tượng (lưu trữ 5) sẽ không được & nbsp; bị loại bỏ. & Nbsp;

Giống như hình ảnh dưới đây:

Hướng dẫn drop a variable in python - thả một biến trong python

Nhưng cách tiếp cận cổ điển này cũng chùn bước khi xử lý các chu kỳ tham chiếu. Bây giờ, chúng ta hãy xem cách xóa các biến này trong Python.

Làm thế nào để xóa các biến trong Python?

Cho đến nay, chúng tôi đã thảo luận & nbsp; How & nbsp; bộ nhớ & nbsp; phân bổ và phân bổ xảy ra trong Python. Mặc dù Python có bộ thu gom rác và người quản lý bộ nhớ để tự động xử lý không gian bộ nhớ, nhưng có một số trường hợp bạn cần buộc phải làm sạch bộ nhớ.

Chẳng hạn, khi xử lý một lượng lớn dữ liệu hoặc phát triển phần mềm tiêu thụ nhiều không gian bộ nhớ. Trong Python, không có nhiều cách để xóa các biến. Một số phương pháp nổi tiếng như sau:

01) Sử dụng từ khóa DEL

Sử dụng lệnh 'del' là phương pháp được biết đến và dễ nhất để xóa các biến trong Python. Từ khóa Del xóa các đối tượng. Vì mọi thứ trong Python là một đối tượng, do đó liệt kê, bộ dữ liệu và từ điển & nbsp; cũng có thể bị xóa bằng cách sử dụng 'del'. Nó có một cú pháp thực sự đơn giản.The del keyword deletes the objects. Since everything in Python is an object, therefore lists, tuples and dictionaries can also be deleted using 'del'. It has a really simple syntax.

Cú pháp: del variablenamedel variableName

Ví dụ: hãy xóa một biến 'A'.

# Example -> Deleting a variable in Python using 'del' keyword

# declaring variable
a = 25
print("variable: ", a)
# deleting the variable
del a

# calling out the variable again
print("variable: ", a)

Bạn phải tự hỏi làm thế nào bạn sẽ biết nếu biến bị xóa. Hãy thử gọi lại biến sau khi xóa nó.

Output:

variable:  25
Traceback (most recent call last):
  File ".\temp.py", line 10, in <module>
    print("variable: ", a)
NameError: name 'a' is not defined

Lưu ý lỗi của nameerror & nbsp; thu được khi gọi biến 'A' một lần nữa, sau khi xóa nó. Do đó, điều này chứng minh rằng biến 'A' bị xóa bằng từ khóa DEL.

Mặc dù sử dụng từ khóa DEL để xóa các biến trong Python, bạn phải chắc chắn nếu bạn thực sự không muốn truy cập biến sau này ở bất kỳ giai đoạn nào trong chương trình của bạn. Xóa không cần thiết của các biến (đối tượng) có thể dẫn đến & nbsp; lỗi. Bạn sẽ không thể truy cập các biến đã bị xóa này, sau khi bị xóa, khỏi chương trình.

02) Xóa nhiều biến trong Python

Bạn cũng có thể xóa nhiều biến với nhau trong Python bằng cách sử dụng từ khóa DEL. Nó & nbsp; tương tự như khởi tạo nhiều biến trong một dòng, được phân tách bằng dấu phẩy.

Cú pháp: del variablename1, variablename2, variablename3del variableName1, variableName2, variableName3

Example:

# Example -> Deleting multiple variables in Python

# declaring multiple variables
a, b, c = 5, 10, 15
print("variables: a: ", a, " b: ", b, " c: ", c)
# deleting multiple variables
del a, b, c

# calling out the variable again
print("variables: a: ", a, " b: ", b, " c: ", c)

Xóa nhiều biến tương tự như xóa một biến trong Python.

Output:

variables: a:  5  b:  10  c:  15
Traceback (most recent call last):
  File ".\temp.py", line 10, in <module>
    print("variables: a: ", a, " b: ", b, " c: ", c)
NameError: name 'a' is not defined

Lưu ý làm thế nào lỗi của nameerror chỉ chỉ ra biến 'A'. Python là một ngôn ngữ được giải thích, có nghĩa là nó diễn giải các lệnh theo từng dòng. Vì biến 'A' là biến không được khai báo đầu tiên gặp phải, do đó quá trình thực thi tạm dừng ở lỗi đầu tiên. Do đó, lỗi của nameerror chỉ chỉ ra biến 'A'.

03) Sử dụng Dir () và Globals ()

Bạn cũng có thể xóa "Tất cả các biến" trong chương trình của mình cùng một lúc. Theo "tất cả các biến", tôi có nghĩa là các biến do người dùng xác định trong phạm vi cục bộ hoặc toàn cầu của chương trình của bạn. Như bạn đã biết, phương thức Dir () trả về tất cả các thuộc tính và phương thức của một đối tượng được chỉ định. Ngay cả khi không có đối tượng nào được tham chiếu, nó sẽ trả về một danh sách tất cả các biến và các phương thức tích hợp được sử dụng trong chương trình của bạn.

Ví dụ:

# declaring multiple variables
a, b, c = 5, 10, 15
print("variables: a: ", a, " b: ", b, " c: ", c)

#inititalizing d with dir()
d = dir()
#printing the directory
print(d)

Bạn sẽ nhận thấy rằng in (d) in ra danh sách tất cả các biến và phương thức trong chương trình đã cho.

Output:

variables: a:  5  b:  10  c:  15
['__annotations__', '__builtins__', '__cached__', '__doc__', 
'__file__', '__loader__', '__name__', '__package__', '__spec__', 
'a', 'b', 'c']

Các biến do người dùng xác định của chúng tôi ('A', 'B' và 'C') nằm ở cuối danh sách. Double nhấn mạnh (__) được sử dụng làm hậu tố và tiền tố, phân biệt biến do người dùng xác định với biến hoặc phương thức tích hợp.

Đồng thời, phương thức Globals () trả về từ điển & nbsp; với tất cả các biến và ký hiệu toàn cầu cho chương trình cùng với các giá trị của chúng. Ví dụ -globals() method returns a dictionary with all the global variables and symbols for the program along with their values. For example -

# declaring multiple variables
a, b, c = 5, 10, 15
print("variables: a: ", a, " b: ", b, " c: ", c)

# inititalizing g with globals()
g = globals()
print(g)

Bạn sẽ nhận thấy sự khác biệt giữa phương thức Dir () và Globals () với đầu ra sau:

variables: a:  5  b:  10  c:  15
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000254F32FEB08>, '__spec__': None, 
'__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '.\\temp.py', '__cached__': None, 
'a': 5, 'b': 10, 'c': 15, 'g': {...}}

& nbsp; vào cuối từ điển, lưu ý các biến được xác định của chúng tôi được in, cùng với các giá trị của chúng. & nbsp;

Bây giờ, hãy bắt đầu với việc xóa các biến do người dùng xác định này. & NBSP; Bạn sẽ cần kiểm tra xem tên biến có giữ bất kỳ dấu gạch dưới kép nào không ('__') hoặc không, để phân biệt giữa các biến do người dùng xác định và tích hợp. & nbsp;

# Example -> Deleting all variables in Python
a, b, c = 5, 10, 15
print("variables: a: ", a, " b: ", b, " c: ", c)

#initializing d with dir()
#This will store a list of all the variables in the program
d = dir()

#You'll need to check for user-defined variables in the directory
for obj in d:
    #checking for built-in variables/functions
    if not obj.startswith('__'):
        #deleting the said obj, since a user-defined function
        del globals()[obj]

#calling the variables again!
print("variables: a: ", a, " b: ", b, " c: ", c)

Hãy lưu ý đến cú pháp để loại bỏ các biến. Đầu tiên, chúng ta phải xác định xem biến (đối tượng) có được định nghĩa bởi người dùng hay không bằng cách tìm kiếm ('__') trong tiền tố. Nếu đối tượng được xác định bởi người dùng, chúng ta phải xóa nó khỏi Globals (). Chúng ta có thể chuyển đối tượng cho Globals () để xóa vì nó là một từ điển.

Output:

# Example -> Deleting a variable in Python using 'del' keyword

# declaring variable
a = 25
print("variable: ", a)
# deleting the variable
del a

# calling out the variable again
print("variable: ", a)
0

Và Voila!! Các biến do người dùng xác định bị xóa. Tất cả trong một!

Sự kết luận

Quản lý bộ nhớ là một yếu tố quan trọng khi nói đến hiệu quả tính toán của một chương trình hoặc phần mềm. Mặc dù Python có trình quản lý bộ nhớ riêng và bộ thu gom rác riêng, chúng tôi cũng có thể kích hoạt bộ thu gom rác hoặc xóa các biến để đổi không gian bộ nhớ. Từ khóa 'del' có thể được sử dụng để xóa các đối tượng trong Python. Từ 'đối tượng' bao gồm các biến, danh sách, bộ dữ liệu, bộ, từ điển và hầu hết mọi thứ trong Python. Cố gắng thực hiện các phương thức trên để xóa các đối tượng khác. Bạn sẽ ngạc nhiên với kết quả mỗi lần.

Làm thế nào để bạn loại bỏ một biến cụ thể trong Python?

Sử dụng lệnh 'del' là phương pháp được biết đến và dễ nhất để xóa các biến trong Python.Từ khóa Del xóa các đối tượng.Vì mọi thứ trong Python là một đối tượng, do đó, các danh sách, bộ dữ liệu và từ điển cũng có thể bị xóa bằng cách sử dụng 'del'. is the most known and easiest method to delete variables in Python. The del keyword deletes the objects. Since everything in Python is an object, therefore lists, tuples and dictionaries can also be deleted using 'del'.

Làm thế nào để bạn thả 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'.A Khi chúng tôi cố gắng tham khảo một đối tượng đã bị xóa, nó sẽ tăng namError.use the 'del' keyword. A when we try to refer to a deleted object, it raises NameError.

Chức năng nào được sử dụng để xóa một biến?

Hàm unset () giải quyết một biến.unset() function unsets a variable.

Làm thế nào để bạn xóa một biến khỏi bộ nhớ?

Chúng ta có thể hoàn thành nhiệm vụ này bằng một trong các tùy chọn sau:..
Phương pháp 1: Xóa biến bằng DEL hoặc không có từ bộ nhớ ..
Phương pháp 2: Xóa danh sách hoặc từ điển bằng DEL hoặc không có từ bộ nhớ ..
Phương pháp 3: Xóa hàm bằng DEL hoặc không có từ bộ nhớ ..
Phương pháp 4: Xóa các đối tượng do người dùng xác định bằng Dir () và Globals ().