Sejak diperkenalkan pada Python 3.8, operator walrus ( := ) telah menjadi tambahan yang signifikan dalam bahasa pemrograman Python. Nama “walrus operator” sendiri berasal dari kemiripannya dengan mata dan gading anjing laut yang sedang berbaring.
Walrus operator digunakan untuk assignment expression, yaitu memberikan nilai pada variabel sekaligus menggunakan/mengeksekusinya dalam ekspresi.
Berbeda dengan operator assignment biasa (=) yang hanya menetapkan nilai ke variabel tanpa mengembalikan nilai apa pun, operator walrus (:=) melakukan dua hal sekaligus: ia memasukkan nilai ke variabel kemudian mengembalikan nilai tersebut. Mekanisme ini memungkinkan penulisan kode yang lebih ringkas dan seringkali lebih mudah dibaca, terutama dalam skenario yang memerlukan assignment dan testing nilai variabel dalam satu baris.
Sintaks dasar operator walrus : variabel := ekspresi
Di mana nilai dari ekspresi akan disimpan dalam variabel, dan pada saat yang sama bisa langsung digunakan dalam pernyataan.
Contoh
= x = 10
print(x) # Output: 10=:print(x := 10) # Output: 10
print(x) # Output: 10Dalam contoh kedua, x langsung dapat digunakan menjadi sebuah parameter fungsi. Hal ini mungkin dilakukan karena x := 10 memasukkan nilai 10 ke variabel x dan nilai 10 itu sendiri dikembalikan, yang kemudian dicetak oleh fungsi print().
Penggunaan operator walrus dapat membawa beberapa keuntungan:
Operator walrus dapat menggabungkan assignment variabel dan evaluasi ekspresi, sehingga tidak perlu membuat baris kode terpisah. Hal ini sangat berguna untuk blok kode yang melibatkan perulangan while, kondisional if, dan list comprehensions.
Tanpa walrus
data = input("Masukkan teks (ketik 'stop' untuk keluar): ")
while data != "stop":
print(f"Anda mengetik: {data}")
data = input("Masukkan teks (ketik 'stop' untuk keluar): ")Dengan walrus
while (data := input("Masukkan teks (ketik 'stop' untuk keluar): ")) != "stop":
print(f"Anda mengetik: {data}")ifTanpa walrus
nilai = len("Python Walrus")
if nilai > 10:
print(f"Teks terlalu panjang, jumlah karakter: {nilai}")Dengan walrus
if (nilai := len("Python Walrus")) > 10:
print(f"Teks terlalu panjang, jumlah karakter: {nilai}")Jika sebuah ekspresi atau pemanggilan fungsi menghasilkan nilai yang mahal secara komputasi atau perlu digunakan beberapa kali, operator walrus memungkinkan nilai tersebut dihitung sekali, di-assign ke variabel, dan kemudian digunakan kembali.
if len(my_list) > 5:
print("Jumlah elemen:", len(my_list))if (n := len(my_list)) > 5:
print("Jumlah elemen:", n)Dengan menggunakan walrus operator, len(my_list) hanya dipanggil sekali.
Dengan menghindari perhitungan ganda, operator walrus dapat meningkatkan kinerja program, terutama saat menggunakan fungsi yang melakukan operasi kompleks atau memakan waktu lama.
Meskipun sangat bermanfaat, operator walrus tetap harus digunakan dengan bijak.
Gunakan Operasi Walrus Untuk:
Hindari Operasi Walrus Jika:
Operator walrus adalah alat yang ampuh untuk menulis kode Python yang lebih efisien dan ringkas. Dengan pemahaman yang tepat dan penerapan yang bijak, operator ini dapat menjadi aset berharga bagi developer Python.