Memahami Underscore Python ( _ ): Panduan Komprehensif
Python, sebagai bahasa yang fleksibel dan intuitif, memperkenalkan banyak konstruksi yang memungkinkan kemudahan pengkodean. Salah satu konstruk tersebut adalah garis bawah (_ ), karakter khusus dengan banyak kegunaan, mulai dari penamaan variabel hingga tujuan juru bahasa, dan banyak lagi. Untuk pemrogram pemula, garis bawah mungkin tampak membingungkan, tetapi memahami tujuannya dapat secara signifikan meningkatkan kemampuan pemrograman Python Anda. Artikel ini membahas eksplorasi mendalam tentang garis bawah Python, mendemistifikasi penggunaan dan signifikansinya yang beragam.
AdvertisementSingle Underscore
Sebagai Variabel Throwaway
Sering kali dalam Python, kami menemukan situasi di mana kami perlu mengulangi rentang atau iterable apa pun, tetapi kami tidak melakukannya berniat untuk menggunakan variabel di dalam loop. Dalam skenario seperti itu, garis bawah tunggal digunakan sebagai variabel `sekali pakai`, yang menunjukkan bahwa variabel loop sengaja diabaikan.
for _ in range(5): print("Halo, Python!")12for_inrange(5): print("Halo, Python!")
Setelah Nama
Dalam Python, satu garis bawah setelah nama digunakan sebagai konvensi penamaan untuk menunjukkan nama dimaksudkan untuk penggunaan internal. Ini menunjukkan bahwa variabel, metode, atau atribut dimaksudkan untuk penggunaan internal di dalam kelas, modul, atau fungsi, dan itu bukan bagian dari API.
class MyClass: def __init__(diri sendiri): self.public_var = "Saya publik!" self._internal_var = "Saya internal!"1234classMyClass: def__init__(self): self.public_var="Saya publik!" self._internal_var="Saya internal!"
Meskipun Python tidak menerapkan privasi dengan nama-nama ini, garis bawah adalah petunjuk kuat bagi pemrogram bahwa itu ditujukan untuk penggunaan internal. Garis Bawah Ganda (Dunder)
Sebelum Nama
Ketika Anda melihat nama diawali dengan garis bawah ganda (__ ), itu adalah cara Python mengacak-acak nama. Ini terutama untuk menghindari konflik penamaan dengan nama di subclass. Python secara otomatis mengawali nama dengan nama kelas.
class MyClass: def __init__(diri sendiri): self.__private_var = "Saya sangat pribadi!"123classMyClass: def__init__(self): self.__private_var="Saya sangat pribadi!"
Di sini, `__private_var` akan diubah menjadi `_MyClass__private_var`, sehingga menghindari potensi konflik penamaan .
Mengelilingi Nama (Metode Ajaib)
Ganda menggarisbawahi sebelum dan sesudah nama memiliki arti khusus. Ini terkait dengan metode sihir Python. Ini adalah metode khusus yang dapat Anda tentukan untuk menambahkan "ajaib" ke kelas Anda, seperti operator yang kelebihan beban atau menerapkan metode protokol. Metode ajaib adalah bagian penting dari fitur berorientasi objek Python. Kelas Sihir kelas
: def __init__(self, num): diri.num = bil def __str__(diri sendiri): mengembalikan f"Instance MagicClass dengan nomor {self.num}"123456classMagicClass: def__init__(self,num): self.num=num def__str__(self): returnf"Instance MagicClass dengan nomor {self.num}"
Dalam kode di atas , `__str__` adalah metode ajaib yang menentukan bagaimana kelas harus dikonversi menjadi string.
Single Underscore di Interpreter
Dalam interpreter Python, satu garis bawah memiliki kegunaan lain yang menarik. Ini digunakan untuk menyimpan hasil ekspresi terakhir yang dieksekusi.
>>> 5 + 5 10 >>> _ 101234>>>5+510>>>_10
The _ memberikan hasil dari pernyataan yang terakhir dieksekusi, yaitu, 10 dalam hal ini. Ini murni untuk meningkatkan keterbacaan bagi manusia. Misalnya, Anda dapat menulis satu juta sebagai 1_000_000, dan Python akan mengartikannya sebagai 1000000.
>>> num = 1_000_000 >>> bilangan 1000000123>>>num=1_000_000>>>num1000000
Garis bawah dalam literal numerik tidak memengaruhi nilai; itu hanya fitur keterbacaan.
Conclusion
Underscore di Python jauh dari detail yang tidak penting. Mereka memiliki tujuan yang jelas, tergantung pada penempatan dan kuantitasnya. Memahami penggunaan garis bawah tidak hanya dapat membantu membuat kode Anda lebih bersih dan lebih idiomatis, tetapi juga mengarahkan Anda untuk memanfaatkan potensi penuh Python. Selamat Pythoning!
Referensi tecadmin.com