Fonksiyon tanımlarken parametre karşısında list,int vb. kullanımı

def normalization(data: list, ndigits: int = 3) -> list:

def standardization(data: list, ndigits: int = 3) -> list:

Bu şekilde bir fonksiyon tanımı var. Bu tam olarak nedir ve neden yapılır? Yani buradaki data: parametresi boş bir liste olarak mı tanımlanmış oluyor? Ve ndigits ifadesi de her zaman için integer 3’e mi eşit olmuş oluyor? Peki ya sonra gelen → kullanımı neden ve ne işe yarıyor?

github kaynağı: Python/data_transformations.py at master · TheAlgorithms/Python · GitHub

def f(x) -> int:
    return x

Yukarıda verdiğim örnek ile ilgili konuyu anlatacağım önce.

→ demek aslında dönecek olan değerin türünü belirliyor. yukarıya int yazdığım için sayısal bir değer dönmek zorunda.

def f(x) -> 123:
    return x

Bu örnektede aynısı mevcuttur. 123 yazmama rağmen int bir değer olduğu için dönecek olan değer int olacak.

def normalization(data: list, ndigits: int = 3) -> list:

Bu ifadede 2 tane değişken tanımlanmış. Bir tanesi data ve türüde list olacak şekilde. Diğeri int tanımlanmış ve 3’e eşitlenmiş.

 -> list:

Bu kısımda dönecek olan değerin türünü belirliyor. Buraya str yazsaydım eğer fonksiyon dışına yazı türünden bir değer dönmek zorunda olurdu.

Tam anlayamadım.
Mesela şu satırlarda;

def f(x) -> int:
    return x

Fonksiyonu çağırırken şöyle bir deneme yaptım.

def f(x) -> int:
    return x
print(f("abc"))
print(type(f("abc")))

Çıktı olarak şunu aldım;

abc
<class 'str'>

Fonksiyonu tanımlarken dönecek değeri int olarak tanımlamıştık ama neden değeri str üzerinden döndürdü?

Peki üçüncü kısımda dönecek olan değerin türünü list olarak belirlemiş ya fonksiyon içerisinde sadece data değişkeninin mi değeri dönüyor? ndigits’i döndürmüyor yani?

5 Beğeni

Genede integer döndürülmesine zorlamıyor. Şuradan daha detaylı anlayabilirsin.

1 Beğeni