Saya sering menemukan diri saya menulis jika / elif / else dibangun dengan python, dan saya ingin memasukkan opsi yang dapat terjadi, tetapi untuk itu tindakan yang sesuai adalah tidak melakukan apa-apa. Saya menyadari bahwa saya hanya bisa mengecualikan pernyataan if, tetapi untuk keterbacaan saya merasa membantu untuk memasukkan semuanya, sehingga jika Anda melihat melalui kode Anda dapat melihat apa yang terjadi sebagai hasil dari setiap opsi. Bagaimana cara saya mengkode no-op? Saat ini, saya melakukannya seperti ini:
no_op = 0
if x == 0:
y = 2 * a
elif x == 1:
z = 3 * b
elif x == 3:
no_op
(Kode sebenarnya sedikit lebih lama dari itu, dan lebih rumit. Ini hanya untuk menggambarkan struktur).
Saya tidak suka menggunakan variabel sebagai no-op, tapi itu cara paling rapi yang bisa saya pikirkan. Apakah ada cara yang lebih baik?
...
) juga layak disebutkan: stackoverflow.com/a/6189281/38281Jawaban:
Gunakan pass untuk no-op:
Dan inilah contoh lain:
Atau:
sumber
doSQL = lambda *x:x
.else
?pass
bukan nilai. Saya juga tidak bisa melihat bagaimana ini bisa berguna.Bagaimana dengan
pass
?sumber
Jika Anda memerlukan fungsi yang berfungsi sebagai nop, coba
Terkadang saya melakukan hal-hal seperti ini ketika saya membuat dependensi opsional:
sumber
nop
dalam konteks yang secara khusus membutuhkan ekspresi (versus pernyataan sewenang-wenang; qv docs.python.org/3/reference/simple_stmts.html dan docs.python.org/3/reference/compound_stmts. html ) - seperti misalnya sebagai sub-ekspresi ke idiom kode yang ada seperti pemahaman, ataulambda
, atau (tuhan melarang) string yang akan dilewatkan keeval(…)
(yang qv docs.python.org/3/library/functions.html# eval jika Anda harus).lambda
untuk menetapkan fungsi ke variabel untuk reusage adalah gaya pengkodean yang buruk. Adadef
untuk itu.Cara lain adalah dengan Ellipsis:
sumber
None
,136
atau"NothingHere"
. Tapi fillgap yang benar dalam python adalahpass
.