2017-02-21 19 views
7

Böyle bir yapıyı varsa:Çoklu değişkenlerin olup olmadığını kontrol etmenin en pythonik yolu nedir?

def foo(): 
    a=None 
    b=None 
    c=None 

    #...loop over a config file or command line options... 

    if a is not None and b is not None and c is not None: 
     doSomething(a,b,c) 
    else: 
     print "A config parameter is missing..." 

tüm değişkenler yararlı değerlere ayarlanmış olup olmadığını kontrol etmek için Python tercih sözdizimi nedir? Yazdığım gibi mi, yoksa başka bir şekilde mi?

Bu sorudan farklı: not None test in Python ... Birçok koşulun olup olmadığını kontrol etmek için tercih edilen yöntemi arıyorum Yok. Yazdığım seçenek çok uzun ve pythonic görünmüyor.

+2

[Python değil Yok testinin] (Olası yinelenen http://stackoverflow.com/ sorular/3965104/not-none-test-in-python) – schwobaseggl

+0

Ben dört değişken için kontrol ediyorum ve de, yayınladığınız açık çözümün çok pythonik olmadığını düşünüyorum. "Güzel" bir yol gibi görünmediğine dair cevapların eksikliğinden sonuçlanmak üzereyim. – wedi

+2

@schwobaseggl: Hayır, sorunun nasıl kontrol edileceğiyle ilgili olmadığı için bu bir kopya değil. Daniel Roseman'ın önerdiği çözümü düzeltmek için çok sayıda değişken kontrol ederken değil, "daha fazla pythonik" görünmesiyle ilgilidir. – wedi

cevap

15

Yaptığınız şekilde yanlış bir şey yok. Eğer değişkenler sürü varsa

, liste halinde koyun ve all kullanabilirsiniz:

if all(v is not None for v in [A, B, C, D, E]): 
+0

Teşekkürler! emin değilim neden bir cevap olarak kabul edemem ama çok yardımcı –

İlgili konular