koşullu atama yapmak, ama o çirkin:iyi yolu bu çok kullanma eğiliminde piton
def either(val, alt):
if val:
return val
else:
return alt
Yani yapabilirsiniz:
a = (lambda x: x if x else y)(get_something())
yüzden bu fonksiyonu yazdım
a = either(get_something(), y)
Bunun için yerleşik bir işlev var mı (T-SQL'de ISNULL benzeri)?
teşekkürler eğer. Ha, aslında bunu deniyordum ama 'a = 0 veya Yok' denerken onu reddetti ve konsol hiçbir şey basmadı. Ama 'a' denemeden sonra '' True '' denir, artı 'Yok veya 0' işlevselliğini istiyorum (geç kalmak) :) Bu arada, hızlı cevap için teşekkürler. – crizCraig
Sadece kayıt için, eğer 've' operatörünü zincirliyorsanız, eğer tüm argümanlar veya False'ye dönüştürülürse False'ye dönüştüren en soldaki argüman ise, True'e dönüşen en doğru argümana göre değerlendirilecektir. –
"a = 0 veya Yok" Tabii ki konsol hiçbir şey yazdırmıyor, "0 veya Yok" sonucunu "a" olarak atayacaksınız ve bunlara atanan "None" değişkenleri otomatik olarak görüntülenmiyor Konsolda gösterildiğinde 'Hiçbiri '. Özellikle repr', str' veya 'print' kullanmalısınız. Ya da böyle bir şey. – JAB