2016-03-27 27 views
1

i aşağıdakileri yapın eğer:Kısa açıklama kullanım python'da

return x or y 

veya

my_function(x or y) 

boş x != null ya da değil dönmek ya da başka xy geçecek olursa

.

Sorum:

yolu java bu var yapmak olduğunu kısaltmak sonra
return x == null ? y : x veya

myFunction(x == null ? y : x) 
+0

Hangi python sürümünü kullanıyorsunuz? –

+4

Gerçekten sorduğun şeyi anladığımdan emin değilim. –

+1

Emin değilim x || y' _any_ python sürümünde bir ifade olarak geçerli, normalde x ise x else y'. –

cevap

1

Üçüncül yöntemin en verimli ve en kısa olduğuna inanıyorum. Ancak, daha fazla ilerlemek ve işleri kısaltmak istiyorsanız, iki nesneyi doğrulamak için durumunuza bağlı olarak genel bir statik veya statik olmayan bir yöntem oluşturabilirsiniz. Ardından, üçlü durum yerine yalnızca doğrulanmış yöntemi döndürün. Örneğin böyle bir şey.

//usage 
Employee valid(Employee x, Employee y) { 
    return v(x,y); 
} 

//generic method for validation 
<T> T v(T o1, T o2) { 
    return o1==null?o2:o1; 
} 
0

Tamam belki bir

x kaynaklanan değer geçiyor ne yapmak istediğini düşünüyorum == null? Bir işlevin argümanı olarak y: x

.

Bunu Yığın Taşması: Short IF - ELSE statement üzerinde buldum. Belki bu yardımcı olacaktır.

Kısaca: myFunction (x == null? Y: x); iyi çalışmalı.

+0

'u düzeltmiştir, ancak sorum şu, python'da olduğu gibi myFunction'dan (x == null? Y: x) kısaltmanın yolu var mı? – Tany