Setelah mengetahui aplikasi untuk pengecekan dan memformat kode, kali ini kita akan belajar cara membuat kode yang baik dan benar. Perhatikan bahwa materi ini akan menunjukkan sintaks yang disarankan dan tidak disarankan.
Saat Anda membuat program dengan banyak statement, usahakan untuk tidak menggabungkan >1 statement pada baris yang sama.Disarankan seperti ini.
Copy
if foo == 'blah': do_blah_thing()do_one()do_two()do_three()
Tidak disarankan seperti ini.
Copy
if foo == 'blah': do_blah_thing()do_one(); do_two(); do_three()
Anda diperbolehkan untuk membuat sebuah konten/isi dari if/for/while yang cukup pendek untuk diletakkan dalam satu baris (program tetap berjalan). Namun, pastikan tidak melakukannya jika if/for/while Anda bertingkat atau bersifat multi clause, misalnya if-else, try-finally, dan sebagainya.Tidak disarankan seperti ini.
Copy
if foo == 'blah': do_blah_thing()for x in lst: total += xwhile t < 10: t = delay()
Koma di bagian akhir (trailing commas) umumnya bersifat opsional, satu statement yang bersifat wajib adalah saat kita membuat variabel menggunakan tipe tuple dengan satu elemen. Hal ini umumnya diperjelas dengan kurung untuk menghindari penghapusan atau pembersihan.Disarankan seperti ini.
Copy
FILES = ('setup.cfg',)
Tidak disarankan seperti ini.
Copy
FILES = 'setup.cfg',
Saat trailing comma bersifat redundan, Anda akan merasakan kemudahannya saat menggunakan VCS (Version Control System), atau pada kode yang mungkin ditambahkan dalam beberapa waktu ke depan. Pola yang disarankan adalah meletakkan nilai atau string pada sebuah baris baru, mengikuti indentasi, menambahkan trailing comma, dan menutup kurung/kurawal/siku pada baris selanjutnya.Tidak umum jika Anda menempatkan trailing comma pada baris letak Anda menutup kurung/kurawal/siku seperti di bawah ini, kecuali dalam tuple dengan satu elemen, seperti yang dijelaskan di atas.Disarankan seperti ini.
Anotasi fungsi adalah fitur yang memungkinkan kita untuk menambahkan informasi tambahan tentang parameter dan return value dari sebuah fungsi. Jika sebelumnya kita belajar menambahkan informasi terkait fungsi dengan menambahkan docstring, anotasi fungsi lebih spesifik untuk menjelaskan parameter dan return value.Penggunaan anotasi fungsi sebaiknya menggunakan aturan baku untuk titik dua (:) dan menggunakan spasi untuk penggunaan arah panah atau arrow (->). Hal ini disebut sebagai type hints yang merujuk pada PEP 484.
Copy
# Perhatikan penggunaan spasi dari kedua kode berikut.Yes:def munge(input: str): # Menambahkan informasi parameter bertipe string passdef munge() -> str: # Menambahkan informasi return value bertipe string passNo:def munge(input:str): # Menambahkan informasi parameter bertipe string passdef munge()->str: # Menambahkan informasi return value bertipe string pass
Pada contoh di atas, kita memberikan informasi bahwa parameter dan return value harus berupa tipe data string. Kita bisa menentukannya dengan tipe lain, seperti ‘int’ untuk integer dan ‘float’ untuk tipe data float.Selanjutnya, saat membuat fungsi dan Anda menggabungkan anotasi dengan nilai parameter, sebaiknya tetap menggunakan spasi baik sebelum dan sesudah tanda sama dengan (=).
Copy
def LuasPersegiPanjang(panjang: int = 2, lebar: int = None): pass
Pada contoh di atas, kita membuat fungsi bernama “LuasPersegiPanjang” untuk mencari luas persegi panjang dengan parameter panjang dan lebar. Sintaks berikut menjelaskan bahwa parameter panjang dan lebar harus bertipe data integer.
Copy
panjang: int
Sementara itu, ketika menambahkan variabel setelah sama dengan (=) akan memberikan nilai default. Contohnya sintaks berikut akan memberikan nilai default 2 untuk parameter panjang.
Copy
panjang: int = 2
Sekarang mari lihat contoh keseluruhan kode dan cara memanggilnya.
Copy
def LuasPersegiPanjang(panjang: int = 2, lebar: int = None): luas = panjang*lebar return luasluas_satu = LuasPersegiPanjang(lebar=2)print(luas_satu)"""Output:4"""
Pada contoh di atas, kita membuat fungsi untuk mencari luas persegi panjang dengan parameter panjang dan lebar. Perlu diingat bahwa pada fungsi tersebut kita memberikan nilai default 2 untuk parameter panjang. Hal ini mengakibatkan bahwa ketika memanggil fungsi LuasPersegiPanjang dengan hanya memasukkan argumen lebar, program akan tetap berjalan dengan baik.Namun, perlu diingat bahwa karena type hints bersifat optional dan memberikan petunjuk, jika pada fungsi LuasPersegiPanjang kita memberikan tipe data float, program akan tetap berjalan sebagaimana mestinya.Sekarang, kita masuk ke skenario baru. Jika pada saat membuat fungsi tanpa adanya anotasi bahwa parameternya menandakan keyword argumen atau nilai default, hindari penggunaan spasi di sekitar tanda sama dengan (=).
Copy
Yes:def LuasPersegiPanjang(panjang=2, lebar=None): luas = panjang*lebar return luasNo:def LuasPersegiPanjang(panjang = 2, lebar = None): luas = panjang*lebar return luas
Pada contoh di atas, kita membuat fungsi luas persegi panjang yang sama seperti sebelumnya. Perhatikan bahwa kita tidak menyertakan anotasi berupa “panjang:int”.Mari kita simpulkan sedikit. Jika kita membuat fungsi yang menggabungkan anotasi dengan nilai parameter, sebaiknya tetap menggunakan spasi sebelum dan sesudah tanda sama dengan (=). Namun, ketika membuat fungsi biasa tanpa adanya anotasi, sebaiknya tidak menggunakan spasi sebelum dan sesudah tanda sama dengan (=).
Pada contoh di atas, kita menggabungkan dalam satu fungsi; parameter panjang menggabungkan anotasi fungsi dan nilai default, sedangkan parameter lebar hanya mendefinisikan nilai default tanpa anotasi fungsi. Perhatikan bahwa spasi ditempatkan pada setiap parameternya.