
Python 3 telah ada sejak lama, dan beberapa pengembang, terutama yang baru memulai dengan Python, sudah menggunakan versi bahasa ini. Meskipun banyak dari fitur baru yang digunakan secara luas, sepertinya ada beberapa yang tertinggal. Dalam artikel ini, saya akan membahas tiga fitur yang paling tidak diketahui tetapi bermanfaat. Saya tahu tentang mereka dari bahasa lain dan mereka membuat Python 3 keren.
Artikel ini adalah terjemahan dari 3 Fitur Terabaikan dengan Python 3 Yang Harus Digunakan Semua Orang .
Pencacahan
Saya telah banyak menggunakan enum di Java dan Swift. Saya terus menggunakannya sekarang dengan Python.
Mendeklarasikan enumerasi dengan Python sangat mudah dilakukan, dan itu mungkin dilakukan sebelum versi 3 (meskipun dengan batasan):
from enum import Enum
class State(Enum):
AIR = 0
LAND = 1
SEA = 2
myState = State.AIR
# 0
print(myState.value)
# AIR
print(myState.name)
Pada kode di atas, pencacahan diperkenalkan dengan mendeklarasikan kelas yang diwarisi dari
Enum. Dan kemudian semua status yang diperlukan dijelaskan secara sederhana. Dalam kasus saya: AIR, LANDdan SEA.
Fungsionalitas yang ditambahkan di Python 3 adalah kemampuan untuk menggunakan
.valuedan .name. Mereka memungkinkan Anda untuk mendapatkan nomor dan string yang sesuai dengan pencacahan.
Misalnya, nilai keluarannya
State.LAND.nameadalah LAND.
Enum berguna dalam kode ketika Anda menginginkan beberapa pengenal tekstual untuk konstanta. Misalnya, daripada membandingkan suatu keadaan dengan 0 atau 1, itu jauh lebih mengungkapkan untuk dibandingkan dengan
State.MOVINGatau State.STATIONARY. Konstanta dapat berubah dan jika seseorang melihat kode nanti, maka kata tersebutMOVINGakan memberikan pemahaman yang jauh lebih banyak daripada 0. Sebagai hasilnya, keterbacaan kode sangat meningkat.
Informasi lebih lanjut dapat ditemukan di dokumentasi resmi Python 3 di Enum .
Pemformatan
Ditambahkan dalam versi 3.6, ini
fstringsadalah alat pemformatan teks yang kuat. Mereka memungkinkan kode yang lebih mudah dibaca dan bebas dari kesalahan (yang saya nikmati setelah beralih dari Java). Ini lebih baik daripada yang formatdigunakan sebelumnya di Python. Berikut contoh penggunaan format:
name = ''
blog_title = 'codeatcpp.com'
# , codeatcpp.com.
a = ", {} {}.".format(name, blog_title)
Sangat mudah untuk melihat tanda kurung kurawal kosong di dalam string dan setelah daftar dengan nama variabel dalam urutan tertentu.
Sekarang mari kita lihat kode yang sama, tetapi menggunakannya
fstringlebih mudah dibaca dan sangat mirip dengan cara pemformatan Swift.
name = ''
blog_title = 'codeatcpp.com'
# , codeatcpp.com.
a = f", {name} {blog_title}."
Untuk mendapatkan string yang begitu rapi, Anda hanya perlu meletakkan huruf
fdi depan tanda kutip, lalu sebagai pengganti tanda kurung kosong, Anda dapat langsung menulis nama variabel atau data tepat di string tersebut. Karena variabel ditulis langsung dalam satu baris, Anda tidak perlu menghitung jumlah elemen dan melacak urutan penempatan variabel di akhir. Mereka berada tepat di tempat nilai mereka dibutuhkan.
Menggunakannya
fstringmemberikan kode yang lebih mudah dibaca dan lebih mudah dipertahankan daripada menggunakan pendekatan klasik.
Kelas data
Kelas data bisa menjadi topik yang lebih membingungkan daripada yang sebelumnya, jadi akan membutuhkan lebih banyak penjelasan. Kelas data adalah sesuatu yang sangat saya sukai tentang Kotlin, jadi saya juga suka menggunakannya dengan Python.
Kelas data adalah kelas yang tujuan utamanya adalah menyimpan data. Kelas berisi variabel yang dapat dibaca dan ditulis, tetapi tidak memiliki logika tambahan.
Bayangkan Anda memiliki program di mana Anda harus meneruskan string dan deretan angka di antara kelas yang berbeda. Anda dapat memiliki metode seperti itu
pass(str, arr), tetapi jauh lebih mudah untuk membuat kelas yang berisi string dan array sebagai satu-satunya anggota kelas.
Menggunakan kelas data menunjukkan dengan lebih baik apa yang Anda coba lakukan dan juga membuatnya lebih mudah untuk membuat pengujian unit.
Contoh di bawah ini menunjukkan kelas data sederhana yang merupakan vektor 3D, tetapi dapat dengan mudah diperluas untuk mewakili kombinasi apa pun dari data yang berbeda:
from dataclasses import dataclass
#
@dataclass
class Vector3D:
x: int
y: int
z: int
#
u = Vector3D(1,1,-1)
# : Vector3D(x=1, y=1, z=-1)
print(u)
Di sini mudah untuk melihat bahwa definisi kelas data sangat mirip dengan definisi kelas reguler, kecuali bahwa dekorator digunakan
@dataclassdan kemudian setiap bidang didefinisikan sebagai : .
Meskipun fungsionalitas yang dibuat
Vector3Dsangat terbatas, tujuan penggunaan kelas data adalah untuk meningkatkan efisiensi dan mengurangi jumlah kesalahan dalam kode. Jauh lebih baik untuk meneruskannya sebagai parameter Vector3Ddaripada satu set variabel tipe int.
Informasi lebih lanjut tentang dekorator
@dataclassdapat ditemukan di dokumentasi resmi Python 3 .
Kesimpulan
Beri tahu saya di komentar bagaimana Anda menyukai kemungkinan ini. Sangat menarik untuk mendengar tentang skenario baru untuk penggunaannya. Selamat membuat kode!