Bunu da yapmak için iyi bir yol bulmak için uğraşıyorum, bu yüzden sadece bir fikir buldum (gümüş bir kurşun değil, çünkü bu çoğunlukla bir zevk meselesi).
if bool(condition1 and
condition2 and
...
conditionN):
foo()
bar()
Bu çözümde gördüğüm diğerlerine kıyasla birkaç değer buluyorum, yani, tüm koşulların dikey olarak hizalanmasına izin veren fazladan 4 boşluk (bool) elde edersiniz ve if ifadesinin gövdesi girintili olabilir açık (ish) bir yol. Bu ayrıca, boole operatörlerinin kısa devre değerlendirmesinin faydalarını korur, ancak elbette temelde hiçbir şey yapmayan bir işlev çağrısının ek yükünü ekler. Tartışmasını döndüren herhangi bir işlevin bool yerine burada kullanılabileceğini iddia edebilirsiniz (geçerli olarak), ama dediğim gibi, bu sadece bir fikir ve sonuçta bir zevk meselesi.
Yeterince komik, bunu yazarken ve "problem" hakkında düşünürken , bir fonksiyon çağrısının yükünü kaldıran başka bir fikir buldum . Ekstra parantez çiftlerini kullanarak karmaşık bir duruma girmek üzere olduğumuzu neden belirtmiyorsunuz? 2 ifadesi daha varsa, if ifadesinin gövdesine göre alt koşulların güzel bir 2 boşluk girintisini verin. Misal:
if (((foo and
bar and
frob and
ninja_bear))):
do_stuff()
Bunu sevdim çünkü ona baktığınızda, kafanızda hemen "zil , burada karmaşık bir şey oluyor!" . Evet, parantezlerin okunabilirliğe yardımcı olmadığını biliyorum, ancak bu koşullar nadiren yeterli görünmelidir ve ortaya çıktıklarında, onları durdurmalı ve yine de dikkatlice okumalısınız (çünkü karmaşıktırlar ).
Her neyse, burada görmediğim sadece iki teklif daha. Umarım bu birine yardımcı olur :)
pep8
paketin ölçütlerini karşılayan bir biçimlendirme çözümü bulmanız gerekir .pep8
Paketin sorunu # 126 kesinlikle PEP8 teknik özelliğinin izlenmesinin paketi sabitleme hakkındadır. Konu ile ilgili tartışma burada da görülen bazı stil önerilerini içermektedir.