Bagaimana cara menghapus nilai dengan python?

Python adalah bahasa pemrograman berorientasi objek di mana kita tidak perlu khawatir tentang pengelolaan ruang memori di Python. Ini memiliki "manajer memori Python", yang bertanggung jawab untuk alokasi memori dan manajemen memori, maka tidak perlu intervensi manual. Namun, terkadang ada kondisi yang menuntut untuk dilihat di ruang memori

Mari kita lihat unit memori paling dasar, alias variabel di Python, dan lihat cara kerja memori saat menanganinya

Apa itu Variabel di Python?

Variabel umumnya didefinisikan sebagai nama yang diberikan ke ruang memori yang menyimpan nilai. Kata 'variabel' itu sendiri mengacu pada bahwa nilai-nilai dapat bervariasi untuk ruang yang sama. Anda pasti bertanya-tanya apakah itu sama untuk semua bahasa pemrograman. Anda akan terkejut mengetahui bahwa, semua yang ada di Python adalah objek. Variabel, Daftar, Tuple, dan bahkan kelas adalah contoh

Variabel adalah referensi ke objek aktual yang menyimpan nilai yang diberikan. Itu sebabnya di Python kita tidak perlu mendeklarasikan variabel atau tipe datanya sebelum menggunakannya

Sebagai contoh

# 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)

 

Lihat bagaimana kita telah mendeklarasikan variabel dan menggunakan variabel tanpa kerumitan mendeklarasikan tipe data atau menginisialisasi

Keluaran

5
<class 'int'>
0
1
_

 

Notice how the type(var1) returns . This implies that variable var1 is an instance of class integers.

Kedengarannya Membingungkan?

Bagaimana Memori Dikelola dengan Python?

Saat bekerja dengan Python, ada dua jenis memori

1. Memori Statis

2. Memori Dinamis

Python menggunakan alokasi memori dinamis, mis. e. alokasi memori terjadi selama runtime. Alokasi memori dinamis menggunakan struktur data Heap untuk implementasi. Selain struktur data tumpukan, struktur data tumpukan digunakan untuk menyimpan memori statis. Jangan bingung antara memori statis dan memori dinamis dengan Python

Di sini, memori statis mengacu pada tumpukan panggilan fungsi. Ingat kembali urutan pemanggilan fungsi yang disimpan menggunakan tumpukan dalam Rekursi. Dibandingkan dengan bahasa pemrograman lain, Python tidak melibatkan pengelolaan memori manual

Python memiliki pengelola Python yang mengelola data aplikasi dalam memori, sehingga tidak banyak intervensi manusia yang diperlukan saat menangani ruang memori

Apa yang Terjadi Saat Kita Mendeklarasikan Variabel dengan Python?

Variabel dalam Python tidak hanya merujuk ke konstanta atau nilai, tetapi juga merujuk ke objek. Saat kita mendeklarasikan variabel dengan Python, itu membuat objek di Private Heap Space yang menyimpan nilai variabel. Sementara variabel dibuat dalam memori Stack sebagai referensi ke objek tersebut

Sulit dimengerti? . Asumsikan Anda perlu mendeklarasikan variabel; . Sekarang, lihat gambar di bawah untuk melihat apa yang terjadi di balik layar

Bagaimana cara menghapus nilai dengan python?

Seperti yang Anda lihat, objek, yang menyimpan nilai (5) dibuat di Private Heap Space sementara variabel/referensi ke objek tersebut dibuat di memori tumpukan. Sekarang mari pertimbangkan untuk membuat variabel lain, misalnya 'b', dengan nilai yang sama dengan 'a'. Bisakah Anda menebak bagaimana alokasi memori akan dilakukan sekarang?

Bagaimana cara menghapus nilai dengan python?

Manajer memori Python akan menghasilkan referensi lain 'b' ke objek yang sama (menyimpan 5) yang dirujuk oleh 'a' karena nilainya sama. Akibatnya, akan ada dua referensi ke objek yang sama. Setiap perubahan di salah satu referensi akan menyebabkan kerusakan tautan referensi mereka ke objek itu (menyimpan 5) dan katakanlah, pembuatan objek lain

Anda dapat menganggap variabel dalam Python sebagai penunjuk (seperti dalam C, dan C++) ke objek

Mengapa kita perlu Menghapus Variabel?

Manajemen Memori adalah salah satu faktor pertimbangan utama saat menangani pengembangan perangkat lunak dengan Python atau bahasa pemrograman apa pun. Anda pasti bertanya-tanya mengapa Manajemen Memori ini sangat penting. Anda bahkan tidak menyadari bagaimana hal itu memengaruhi kode Anda saat menulis program apa pun

Baiklah, izinkan saya memberi tahu Anda, ini karena Anda belum berurusan dengan perangkat lunak besar yang mengerjakan data dalam jumlah besar, atau data besar, belum. Saat menangani data besar, Anda akan melihat bagaimana manajemen memori ini memengaruhi efisiensi dan waktu pemrosesan perangkat lunak Anda secara keseluruhan

Struktur data diperkenalkan karena alasan ini.  

Bagaimana cara kerja Penghapusan Variabel?

Seperti yang dikatakan sebelumnya, Python memiliki manajer memori Python, yang bertanggung jawab untuk alokasi atau dealokasi tumpukan memori. Tumpukan memori di Python menampung objek dan struktur data lain yang digunakan dalam program

Jadi, ketika sebuah variabel (referensi ke suatu objek) tidak lagi digunakan, manajer memori Python membebaskan ruang, i. e. itu menghapus objek yang tidak perlu. Proses membuang benda-benda yang sudah tidak terpakai ini dikenal dengan sebutan Pengumpulan Sampah.  

Pengumpul sampah

Pengumpul Sampah adalah proses yang berjalan di latar belakang program Python Anda. Segera setelah Anda menjalankan program Python, pengumpul sampah juga mulai di latar belakang. Karenanya, pengumpul sampah tidak perlu dipicu atau dipanggil secara khusus. Proses ini berjalan secara teratur dan mengambil kembali ruang memori dari objek yang tidak lagi dibutuhkan oleh program.  

Bagaimana Pengumpul Sampah menentukan apakah suatu variabel (objek) harus dihapus? . Karena Python memiliki segalanya sebagai objek, maka setiap objek harus memiliki referensi. Seperti dibahas di atas, sebuah objek dapat memiliki lebih dari satu referensi. Segera setelah Anda membuat variabel, objeknya akan dibuat di Private Heap Space.  

Sekarang, mari kita kembali ke contoh kita. Karena objek (menyimpan 5) memiliki dua referensi 'a' dan 'b'. Sekarang asumsikan bahwa Anda harus menghapus variabel a. Menurut Anda apa yang dapat terjadi dalam memori?

Bagaimana cara menghapus nilai dengan python?

Jadi, objek tidak akan terhapus sendiri, karena memiliki referensi (variabel 'b') yang menunjuk padanya. Tetapi referensi (variabel 'a') dihapus

Jumlah referensi ke objek disimpan. Ini dikenal sebagai Penghitungan Referensi dengan Python

Jadi, jika kita berbicara tentang contoh di atas, objek kita (menyimpan 5) memiliki 2 referensi, variabel 'a' dan 'b'. Oleh karena itu, Hitungan Referensi untuk objek kita (menyimpan 5) akan menjadi 2. Pengumpul Sampah tidak akan membuang objek ini sampai Jumlah Referensinya kembali ke nol. Ini berarti bahwa sampai kedua variabel ('a' dan 'b') dihapus, objek (menyimpan 5) tidak akan dibuang.  

Seperti gambar di bawah ini

Bagaimana cara menghapus nilai dengan python?

Namun pendekatan klasik ini juga terputus-putus ketika berhadapan dengan siklus referensi. Sekarang, mari kita lihat cara menghapus variabel-variabel ini dengan Python

Bagaimana Cara Menghapus Variabel dengan Python?

Sejauh ini kita telah membahas bagaimana alokasi memori dan dealokasi terjadi di Python. Meskipun Python memiliki Pengumpul Sampah dan Manajer Memori untuk menangani ruang memori secara otomatis, ada beberapa kasus di mana Anda perlu memaksa pembersihan memori

Misalnya, saat menangani data dalam jumlah besar atau mengembangkan perangkat lunak yang menghabiskan banyak ruang memori. Di Python, tidak banyak cara untuk menghapus variabel. Beberapa metode yang terkenal adalah sebagai berikut

01) Menggunakan kata kunci del

Menggunakan perintah 'del' adalah metode yang paling dikenal dan termudah untuk menghapus variabel dengan Python. Kata kunci del menghapus objek. Karena semua yang ada di Python adalah objek, daftar, tupel, dan kamus juga dapat dihapus menggunakan 'del'. Ini memiliki sintaks yang sangat sederhana

Sintaksis. namavariabel del

Misalnya, mari kita hapus variabel '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)

 

Anda pasti bertanya-tanya bagaimana Anda tahu jika variabel dihapus. Coba panggil variabel lagi setelah menghapusnya

Keluaran

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

 

Perhatikan error NameError yang diperoleh saat memanggil variabel 'a' lagi, setelah menghapusnya. Oleh karena itu, ini membuktikan bahwa variabel 'a' dihapus menggunakan kata kunci del

Saat menggunakan kata kunci del untuk menghapus variabel di Python, Anda harus yakin jika Anda benar-benar tidak ingin mengakses variabel nanti pada tahap mana pun dalam program Anda. Penghapusan variabel (objek) yang tidak perlu dapat menyebabkan kesalahan. Anda tidak akan dapat mengakses variabel yang dihapus ini, setelah dihapus, dari program

02) Menghapus Banyak Variabel dengan Python

Anda juga dapat menghapus beberapa variabel bersamaan dengan Python menggunakan kata kunci del. Ini mirip dengan menginisialisasi beberapa variabel dalam satu baris, dipisahkan dengan koma

Sintaksis. del namavariabel1, namavariabel2, namavariabel3

Contoh

# 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)
_

 

Menghapus banyak variabel mirip dengan menghapus variabel di Python

Keluaran

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

 

Perhatikan bagaimana kesalahan NameError hanya menunjukkan variabel 'a'. Python adalah bahasa yang ditafsirkan, yang berarti ia menafsirkan perintah baris demi baris. Karena variabel 'a' adalah variabel pertama yang tidak dideklarasikan yang ditemui, maka proses eksekusi berhenti pada kesalahan pertama. Jadi, kesalahan NameError hanya menunjukkan variabel 'a'

03) Menggunakan dir() dan globals()

Anda juga dapat menghapus "Semua variabel" di program Anda sekaligus. Yang saya maksud dengan "Semua Variabel" adalah variabel yang ditentukan pengguna dalam lingkup lokal atau global program Anda. Seperti yang Anda ketahui, metode dir() mengembalikan semua properti dan metode dari objek tertentu. Bahkan ketika tidak ada objek yang direferensikan, ia mengembalikan daftar semua variabel dan metode bawaan yang digunakan dalam program Anda

Sebagai contoh

# 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)
_

 

Anda akan melihat bahwa print(d) mencetak daftar semua variabel dan metode dalam program yang diberikan

Keluaran

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

 

Variabel yang ditentukan pengguna kami ('a', 'b', dan 'c') ada di bagian bawah daftar. Garis bawah ganda (__) digunakan sebagai akhiran dan awalan, membedakan variabel yang ditentukan pengguna dari variabel atau metode bawaan

Pada saat yang sama, metode globals() mengembalikan kamus dengan semua variabel dan simbol global untuk program beserta nilainya. Sebagai contoh -

# 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)
_

 

Anda akan melihat perbedaan antara metode dir() dan globals() dengan output berikut

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': {...}}
_

 

Di akhir kamus, perhatikan bahwa variabel yang kita tentukan dicetak, bersama dengan nilainya.  

Sekarang, mari kita mulai dengan menghapus variabel buatan pengguna ini. Anda harus memeriksa apakah nama variabel memiliki garis bawah ganda ('__') atau tidak, untuk membedakan antara variabel yang ditentukan pengguna dan variabel bawaan.  

5
<class 'int'>
0
1
_0

 

Perhatikan sintaks untuk menghapus variabel. Pertama, kita harus menentukan apakah variabel (objek) ditentukan pengguna atau tidak dengan mencari ('__') di awalan. Jika objek ditentukan oleh pengguna, kita harus menghapusnya dari global (). Kita dapat meneruskan objek ke globals() untuk dihapus karena ini adalah kamus

Keluaran

5
<class 'int'>
0
1
_1

 

Dan Voila. Variabel yang ditentukan pengguna dihapus. Semua sekaligus

Kesimpulan

Manajemen memori merupakan faktor penting dalam hal efisiensi komputasi suatu program atau perangkat lunak. Meskipun Python memiliki Pengelola Memori dan Pengumpul Sampahnya sendiri, kami juga dapat memicu pengumpul sampah atau menghapus variabel untuk menebus ruang memori. Kata kunci 'del' dapat digunakan untuk menghapus objek dengan Python. Kata 'objek' mencakup variabel, daftar, tupel, set, kamus, dan hampir semua yang ada di Python. Coba terapkan metode di atas untuk menghapus objek lain. Anda akan terkejut dengan hasilnya setiap saat

Bagaimana cara menghapus nilai dari suatu objek dengan Python?

Kata kunci del di python terutama digunakan untuk menghapus objek di Python . Karena segala sesuatu di python mewakili objek dengan satu atau lain cara, kata kunci del juga dapat digunakan untuk menghapus daftar, mengiris daftar, menghapus kamus, menghapus pasangan nilai kunci dari kamus, menghapus variabel, dll.

Bagaimana cara menghapus nilai dari daftar?

Ada tiga cara di mana Anda dapat Menghapus elemen dari Daftar. .
Menggunakan metode hapus()
Menggunakan metode pop() objek daftar
Menggunakan operator del

Bagaimana cara menghapus () bekerja di Python?

Metode hapus() menghapus kemunculan pertama elemen dengan nilai yang ditentukan .

Apakah ada fungsi Hapus di Python?

Python List remove() adalah fungsi bawaan dalam bahasa pemrograman Python yang menghapus objek tertentu dari Daftar . Parameter. obj. objek yang akan dihapus dari daftar.