Orada C Python eşdeğer# boş birleşiyor operatör?
C# (kısa) kolay null atama sırasında kontrol etmek için izin veren null-coalescing operator (??
olarak yazılmış) var:
string s = null;
var other = s ?? "some default value";
Python bir karşılığı var mıdır?
Yapabileceğimi biliyorum:
s = None
other = s if s else "some default value"
Ama orada bile daha kısa bir yol s
tekrar etmeye gerek yok).
CEVAP
other = s or "some default value"
Tamam, or
operatörünün nasıl çalıştığını belirtmeliyiz. Boolean operator, boolean bağlamında çalışır. Eğer değerler boolean ise, operatörün amaçlar için boolean değerine dönüştürülür.
or
operatör True
False
, bunun yerine, döner yanlış değerlendirmesi olmayan ilk terim yalnızca döndürür unutmayın.
Bu durumda, ifadenin boolean dönüştürüldüğünde 13* *True
* * * ya da doğru olarak değerlendirilirse x
döndürür. Aksi takdirde, y
döndürür. Çoğu durumda, bu C ses çok aynı amaca'nın boş birleşiyor, operatör, ama unutmayın: . için hizmet edecektir
42 or "something" # returns 42
0 or "something" # returns "something"
None or "something" # returns "something"
False or "something" # returns "something"
"" or "something" # returns "something"
Eğer kullandığınız değişkeni s
tutmak bir şey ya da bir başvuru için örnek bir sınıf veya None
(sürece sınıf tanımlamıyor üye __nonzero__()
__len__()
), güvenli kullanmak için aynı semantik olarak boş birleşiyor operatör.
Hatta bu Python-yan etkisi olması yararlı olabilir. Yanlış olan ne biliyor musun, çünkü bu özellikle None
(bir hata nesnesi, örneğin) kullanmadan varsayılan değer tetiklemek için kullanabilirsiniz.
Python üçlü koşullu bir operatör var m...
&Quot;boş birleşiyor" JavaScript ...
Meraklı boş birleşiyor operatör özel ö...
'eşdeğer && bir deyim s Python...
Python's "" operatör be...