Di banyak situs web saya sering melihat komentar bahwa kode itu tidak pythonic, atau ada cara yang lebih pythonic untuk mencapai tujuan yang sama.
Apa arti pythonic dalam konteks ini? Misalnya, mengapa
while i < someValue:
do_something(list[i])
i += 1
tidak sementara pythonic
for x in list:
doSomething(x)
itu pythonic?
Jawaban:
Memanfaatkan fitur-fitur bahasa Python untuk menghasilkan kode yang jelas, ringkas dan mudah dipelihara.
Pythonic berarti kode yang tidak hanya mendapatkan sintaks yang benar tetapi juga mengikuti konvensi komunitas Python dan menggunakan bahasa dengan cara yang dimaksudkan untuk digunakan.
Ini mungkin paling mudah dijelaskan dengan contoh negatif, seperti pada artikel terkait dari jawaban lain. Contoh kode unpythonic sering kali berasal dari pengguna bahasa lain, yang alih-alih mempelajari pola pemrograman Python seperti pemahaman daftar atau ekspresi generator, mencoba menggunakan linggis dalam pola yang lebih umum digunakan di C atau java. Loop adalah contoh umum dari ini.
Misalnya di Java mungkin saya gunakan
for i in (i; i < items.length ; i++) { n = items[i]; ... now do something }
Dengan Python kita dapat mencoba dan mereplikasi ini menggunakan while loop tetapi akan lebih bersih untuk digunakan
for i in items: i.perform_action()
Atau, bahkan ekspresi generator
(i.some_attribute for i in items)
Jadi pada dasarnya, ketika seseorang mengatakan sesuatu itu unpythonic, mereka mengatakan bahwa kode tersebut dapat ditulis ulang dengan cara yang lebih sesuai untuk gaya pengkodean ular piton.
Mengetik
import this
di baris perintah memberikan ringkasan prinsip Python. Yang kurang terkenal adalah bahwa kode sumbernyaimport this
sudah pasti, dan menurut desain, unpythonic! Lihatlah itu sebagai contoh tentang apa yang tidak boleh dilakukan.sumber