Python’da Tip Belirtme (yalnızca belirtme) Yöntemi

Bildiğiniz gibi Python’da değişkenlerin kendilerinin tipleri yoktur yani:

int sayı=144

diye bir şey söyleyememekteyiz. Aynı şekilde fonksiyonlarda da değişkenlere tip belirtemiyoruz ancak Python’da Type vardır ve üstelik oldukça da katıdır. Örnek vermek gerekirse:

number=1 
text="Derrick Rose "
print(text+number) #TypeError: can only concatenate str (not "int") to str

Gördügünüz gibi + ile string ve inti birleştiremiyoruz. Tasarım kararı olarak Python’un felsefesine uygun bir durum. Evet durum budur ve özellikle fonksiyonları kullanırken veya üzerinde değişiklik yapacağımızda tek tek değişkenleri denemek zorunda kalıyoruz bazen Örnek vermek gerekirse:

def somef(var1,var2,var3,var4): 
if var2 not in somelist:
return someop(var3)
else:
return someop(var4-var1)

Elimizde yukarıdaki gibi bir fonksiyon olması durumunda çeşitli kombinasyonlar deniyoruz değişkenler ile ve çalışmasını bekliyoruz. İşte buradaki karmaşıklığın önüne geçmek ve Refactoringi kolaylaştırmak için Python’da şöyle bir ek var:

def somef(var1:str,var2:float,var3:int,var4:float)-> float: 
if var2 not in somelist:
return someop(var3)
else:
return someop(var4-var1)

Gördüğünüz gibi değişken type’ı belirtmek için :type, return type belirtmek için ise -> type’ı kullanıyoruz. Ancak maalesef fonksiyon çağrısında veya geri dönüşünde tip kontrolü yapılmıyor yalnızca kodu okuyan, kullanan, değişiklik yapan insan için büyük bir kolaylık sağlıyor.

Şu şekilde de kullanabilmekteyiz elbette:

number:str="anilkay"

Evet Mypy ile tam olarak kontrol işlemini de gerçekleştirebiliyoruz şuradan ayrıntılı bilgi alınabilir:

http://mypy-lang.org

Originally published at http://anilkaynr.wordpress.com on February 18, 2020.

Computer Engineer,Sociologist, CSE Master Student

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store