Saya telah berjuang untuk menemukan cara yang baik untuk melakukan ini juga, jadi saya baru saja datang dengan ide (bukan peluru perak, karena ini terutama masalah selera).
if bool(condition1 and
condition2 and
...
conditionN):
foo()
bar()
Saya menemukan beberapa kelebihan dalam solusi ini dibandingkan dengan yang lain yang pernah saya lihat, yaitu, Anda mendapatkan persis 4 ruang lekukan tambahan (bool), yang memungkinkan semua kondisi untuk berbaris secara vertikal, dan badan pernyataan if dapat dimasukkan ke dalam cara yang jelas (ish). Ini juga menyimpan manfaat evaluasi hubung singkat operator boolean, tetapi tentu saja menambahkan overhead panggilan fungsi yang pada dasarnya tidak melakukan apa-apa. Anda dapat berdebat (secara sah) bahwa fungsi apa pun yang mengembalikan argumennya dapat digunakan di sini alih-alih bool, tetapi seperti yang saya katakan, itu hanya sebuah gagasan dan pada akhirnya masalah selera.
Cukup lucu, ketika saya menulis ini dan berpikir tentang "masalah", saya datang dengan ide lain , yang menghilangkan overhead panggilan fungsi. Mengapa tidak menunjukkan bahwa kita akan memasuki kondisi kompleks dengan menggunakan pasangan kurung tambahan? Katakan, 2 lagi, untuk memberikan 2 spasi indentasi bagus dari sub-kondisi relatif terhadap tubuh pernyataan if. Contoh:
if (((foo and
bar and
frob and
ninja_bear))):
do_stuff()
Saya agak suka ini karena ketika Anda melihatnya, sebuah lonceng dengan segera berbunyi di kepala Anda mengatakan "hei, ada hal rumit yang terjadi di sini!" . Ya, saya tahu bahwa tanda kurung tidak membantu keterbacaan, tetapi kondisi ini seharusnya jarang muncul, dan ketika itu muncul, Anda harus berhenti dan membacanya dengan cermat (karena kompleks ).
Pokoknya, hanya dua proposal lagi yang belum saya lihat di sini. Semoga ini bisa membantu seseorang :)
pep8
kriteria paket. Masalahpep8
paket # 126 adalah tentang memperbaiki paket untuk secara ketat mengikuti spesifikasi PEP8. Diskusi untuk masalah ini mencakup beberapa saran gaya juga terlihat di sini.