Python fonksiyonlarında yeni getirilen bir özellik. Fonksiyonun alacağı argümanların tipini belirtebiliyorsunuz. Örneğin sadece sayı almasını istediğimiz bir fonksiyon tanımlamak istersek
def test(sayi:int):
return sayi*sayi
test("merhaba") # hata verir
test(15) # doğru kullanım
Koddaki channel: discord.VoiceChannel kısmı da, channels argümanının discord.VoiceChannel tipinde bir argüman olması gerektiğini bildiriyor.
Hayır tip kontrolü değil, python da yeni gelen argüman tipini belirtmek ne işe yarayabilir? benim aklıma sadece, gelistiriciye bu fonksiyonun hangi tip parametre alması gerektiğini belirtmesi geliyor.
Tam olarak şunu demek istiyorum. Python’da bir fonksiyonun alması gereken argümanın int tipinde olmasını söylediğimiz halde, biz string bir argüman gönderdiğimizde Python buna itiraz etmiyor.Ancak tip kontrollü dillerde kesinlikle hata verir, farklı tipte argüman gönderilmesine müsade etmez.
Bu durumda,Python’da argümanların tipini belirtmek sizin dediğiniz gibi bir karışıklıkta işe yarar. Ancak bir argümanın tipinin ne olması gerektiğine döküman sayfalarından da bakabiliyoruz. Bu yüzden, Python’da argüman tipini sadece bunun için mi belirteyim diye soruyorum.
Sadece kodun okunaklığını artırmak için tasarlanmış. Kısıtlama getirirmeme sebebi ise değişkenlerin dinamikliğini engellemesini önlemek.
Mesela siz bir sınıf yazdınız. Bu Text sınıfının tüm özelliklerini taşıyor. Eğer kısıtlama olursa bu sınıfın örneğini o fonksiyona veremezsiniz. Ama dinamiklik buna izin veriyor.
Kısacası evet. Bu amaç için kullanın. Yorum satırları ile aynı amaç.
#Benim gibi bunu kullanmıyorsanız kullanmaya başlamalısınız.
Hayir, sadece mypy gibi gereclerle type checking yaparken, ve bunu otomatik olarak veya çok sık bir sekilde yaparken belirt. Aksi takdirde kodun gerisinde kalma ihtimali var; yanlis belirtme hic olmayan belirtmeden daha kotu bir sey.