Python'da bir yeni insanım. Lütfen python'un neden anahtar çantası olmadığını açıklayın? Neden Python anahtar kutusunda yok?
cevap
Biz bir noktada kabul ama adlandırılmış sabitleri ilan etme yolunu kalmadan size çok teşekkür ederim, verimli bir atlama tablo oluşturmak için hiçbir yolu yoktur. Öyleyse bıraktığımız tek şey, elif-elif-else zincirleriyle yapabileceğimiz bir şey için sözdizimsel şeker. Tüm tartışmalar için bkz. PEP 275 ve PEP 3103.
Özetle, çeşitli tekliflerin, insanların ne tür bir dava yapacağıyla ilgili açıklamalarına dayanamadıkları ve mevcut çözümlerde (sözlük tabanlı gönderim, el-elif zincirleri, getattr- tabanlı sevkiyat veya eski moda polimorfizm aynı yönteme yönelik farklı uygulamalara sahip objelere gönderilir).
'durumda 1:' oldukça sabittir, ancak * sabitler *, her yerde sihirli numaralar kullanmanız gerekir ve sihirli sayıları teşvik eden bir sözdizimi yapısı istemiyoruz. – user2357112
Gerçekten, bu sorunun yanıtlanması için dokümanlar içinde bir bölüm var. Aşağıya bakın:
Why isn’t there a switch or case statement in Python?
TL; DR: Mevcut alternatifleri (getattr
veya dict.get
yoluyla dinamik bir gönderme, if
/elif
zincirleri) gayet güzel bütün kullanım örneğini kapsar. i ifadeleri ise zincirleme ile yapılır aynı işi alabilirsiniz
rağmen Java
, C++
, C#
destek en Onları ben switch statements
hiç kullanmadım.
Sorulan soruya cevap vermiyor ... – qwr
Soru 1: 1'e cevap vermese de, bunun eskimiş olup olmadığına karar vermek için bir ölçüt olarak kullanılabilen güçlü bir ifadedir. Hiç bir "switch" ifadesi aradığınız davayı aldın mı? – user1767754
Hiçbir zaman bir performans sorununa ihtiyacınız yoktur (noob) :( –
def f(x):
return {
1 : 'output for case 1',
2 : 'output for case 2',
3 : 'output for case 3'
}.get(x, 'default case')
Sen Python anahtar vaka olarak kullanabilir ve durum aynı değil ise durum
- 1. Anahtar Sözcük Yok Arg Anahtar Kelimeler Arg Python
- 2. Python örneklerinin neden __name__ özniteliği yok?
- 3. Neden python "venv adında modül yok" diyor?
- 4. Python fonksiyonu Yok
- 5. Renk yok olduğunda Python senaryosunu
- 6. Python sözlük '' anahtar hatası
- 7. python: modülde öznitelik yok
- 8. Python PIL özniteliği yok 'Image'
- 9. Neden Python çizgi grafiği gösteriyor: Hesabınız yok mu? plot.ly
- 10. Python, sınıf değişkenlerini neden nesnelerden önce yok eder?
- 11. Python çok işlemcili anahtar kelime bağımsız değişkenleri
- 12. Neden VB.NET'te hata yok
- 13. Neden UTF-24 yok?
- 14. Neden xlrd'm yok?
- 15. Neden std :: protect yok?
- 16. Raylar neden yok sayılır.
- 17. Sistem.float neden .net'de yok?
- 18. Neden foreignAutoDelete yok?
- 19. Asimetrik anahtar bulunamıyor - yok ya da izniniz yok
- 20. Neden "Add Reference ..." iletişim kutusunda Microsoft.ReportViewer.WebForms sürüm 10.0.0.0 göremiyorum?
- 21. İletişim kutusunda bölücü satırı
- 22. Liste kutusunda
- 23. İstek kutusunda
- 24. Python: Bir sözlük anahtar ile nasıl sıralanır
- 25. Neden Python
- 26. Python: Kümelenme Arama Motoru Anahtar
- 27. Python sözlüklerinde anahtar/değer tutarlılığı
- 28. İletişim Kutusunda Web Görünümü
- 29. Neden bir anahtar dinleyicisi ekleyemiyorum?
- 30. Python: örneğinin bir özelliği yok
eşleşmiyor eğer Bunlar çok yararlı değildir varsayılan dönecektir. 'Switch' yerine 'el ...' ile yapışmak daha güvenlidir. Dikkatli değilseniz, korkunç böceklere yol açarlar. – Unni
Bir geçici çözüm için [Python'da Anahtar/Vaka uygulamasında herhangi bir değer var mı?] (Https://stackoverflow.com/q/5440990/6521116) –