3.10 Güncellemesiyle Beraber Switch-Case Yapısı Geliyor!

3.10 dökümantasyonlarına rasgele göz atarken switch case yapısının geldiğini gördüm. Bu ve Bu kaynaklardan inceleyebilirsiniz

1 Beğeni

Sanırım 2020, Eylül ayından bahsediyorsunuz.

Ben daha önce böyle bir haber duymadım. Hiçbir Python kodunda da görmedim.
Daha çok, üzerine konuşup sonradan vazgeçmiş gibi görünüyorlar.

Verdiğiniz linklerde bir 'match statement’dan bahsediliyor. Hızlıca bir araştırma yapınca çıkan kaynakların çoğunda, Python’ın böyle bir ifadeye sahip olmadığı, ama alternatif olarak ‘sözlük’ yapısının kullanılabileceğini ve kullanılıyor olduğu yazıyor. Emin olmak için kwlist'e baktım ve sonuç:

import keyword

print(keyword.kwlist)

Output:['False', 'None', 'True', 'and',
'as', 'assert', 'async', 'await',
'break', 'class', 'continue',
'def', 'del', 'elif', 'else',
'except', 'finally', 'for',
'from', 'global', 'if',
'import', 'in', 'is', 'lambda',
'nonlocal', 'not', 'or',
'pass', 'raise', 'return',
'try', 'while', 'with', 'yield']

print("match" in keyword.kwlist)

Output: False

Demek istediğim pythonun 3.10 sürümüyle birlikte diğer dillerde olan switch case yapısının pythons gelmesi planlanmakta. Python.org dan 3.10 sürümünü indirip pythonu çalıştırırsanız, verdiğim linkteki syntexin çalıştığını göreceksiniz. Bizzat denedim yarın müsait olduğumda örnek kodu atarım

match ve case, soft keyword adı altında dile sokuluyor. O listede zaten olmayacaklar.

Sanırım eski bir sürümden bahsediyorsunuz. Çünkü 3.8.3 sürümünde softkwlist isminde bir liste mevcut değil. 3.9.2 sürümünde ise var ama içeriği boş; match ve case keyword’leri yok.

Üzgünüm ama ben şu cümleden;

bu anlamı;

çıkaramadım.

Ne demek istediğinizi anlamadım. match case zaten bu sürümlere değil 3.10’a gelecek.

https://docs.python.org/3.10/whatsnew/3.10.html#pep-634-structural-pattern-matching

Neden ‘gelecek’ diyerek gelecek zamandan bahsediyorsunuz onu anlamıyorum.
3.10 sürümü geçen yıl yayımlandı. Sanki yakın zamanda 3.10 sürümüne geçecekmişiz gibi bir anlam ifade ediyorsunuz.

3.1.0 ile 3.10.0 sürümünü karıştırıyorsunuz. Biz ikincisinden bahsediyoruz.

Aksine, ben güncel sürümleri (+3.7) kastediyorum.

Pattern matching kadar onemli bir seyi dile sonradan eklediginde nasil sacmaliklara gebe olunabilecegini guzel gosteriyor:

Patterns may use named constants. These must be dotted names to prevent them from being interpreted as capture variable:

However, when the same value pattern occurs multiple times in the same match statement, the interpreter may cache the first value found and reuse it, rather than repeat the same lookup.

Ilgili HN tartismalarinda biraz daha yorum var.


Troll’leri beslemeyiniz.

1 Beğeni

Switch case gelecek veya switch case keywordleri gelecek deseydim, dediğiniz gibi anlaşılmayabilirdi fakat ben gelecek olan şeyin bunların yapısı olduğundan bahsettim.

Gelecek çünkü 3.10 sürümü henüz stable bir sürüm değil. Aynı zamanda kaldırıladabilir. Ve evet yakın zamanda python resmi olarak 3.10 sürümüne geçmiş olacak çünkü bir sonraki sürüm 3.10 ve şuan geliştirme aşamasında olduğu yazıyor.
image

Evet, biraz daha sağlıklı düşününce yanlış anladığımı farkettim, özür dilerim;

2 Beğeni