SORU
8 EKİM 2008, ÇARŞAMBA


Python tarzı: Eğerler birden çok satırı koşulları

Bazen birden fazla satır için Eğerler uzun koşulları kırarım. Bunu en bariz bir şekilde

  if (cond1 == 'val1' and cond2 == 'val2' and
      cond3 == 'val3' and cond4 == 'val4'):
      do_something

Eylem koşulları ile harmanlayarak, çünkü çok görsel olarak çok çekici değil. Ancak, doğal yolla 4 boşluk doğru Python girinti kullanıyor.

Şu an için kullanıyorum:

  if (    cond1 == 'val1' and cond2 == 'val2' and
          cond3 == 'val3' and cond4 == 'val4'):
      do_something

Ama bu çok hoş değil. :-)

Alternatif bir yol önerebilir misiniz ?

CEVAP
8 EKİM 2008, ÇARŞAMBA


İkinci koşullu hattınızdan 4 boşluk kullanmanıza gerek yok. Belki de kullanın:

if (cond1 == 'val1' and cond2 == 'val2' and 
       cond3 == 'val3' and cond4 == 'val4'):
    do_something

Ayrıca, boşluk unutma sandığınızdan daha esnek

if (   
       cond1 == 'val1' and cond2 == 'val2' and 
       cond3 == 'val3' and cond4 == 'val4'
   ):
    do_something
if    (cond1 == 'val1' and cond2 == 'val2' and 
       cond3 == 'val3' and cond4 == 'val4'):
    do_something

İkisi de oldukça çirkin ama.

Belki parantez (Style Guide gerçi bu caydırır) kaybetmek?

if cond1 == 'val1' and cond2 == 'val2' and \
   cond3 == 'val3' and cond4 == 'val4':
    do_something

Bu en azından bazı farklar verir.

Hatta:

if cond1 == 'val1' and cond2 == 'val2' and \
                       cond3 == 'val3' and \
                       cond4 == 'val4':
    do_something

Tercih ederim:

if cond1 == 'val1' and \
   cond2 == 'val2' and \
   cond3 == 'val3' and \
   cond4 == 'val4':
    do_something

Burada parantez kullanarak önerir Style Guide,.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FRED

    FRED

    1 EKİM 2005
  • Propaganda Time

    Propaganda T

    19 EYLÜL 2010
  • Tome Rodrigo

    Tome Rodrigo

    9 Temmuz 2006