--- Decorator fonksiyonlar, fonksiyonlarımıza dinamik olarak ekstra özellik eklediğimiz fonksiyonlardır ve kod tekrarı yapmamızı engeller. ---
--- Aşağıdaki iki fonksiyonda çalışma sürelerini ölçtük. Dikkat edersiniz bunun için her iki fonksiyona da aynı kodları yazdık ve kod tekrarına düştük. ---

--- Şimdi decorator kullanalım. Aşağıdaki örneği dikkatli inceleyin. Kısaca anlatmaya çalışıcam;
1 - kareleri_hesapla fonksiyonu zaman_hesapla fonksiyonuna argüman olarak gider.
2 - wrapper fonksiyonu kareleri_hesapla fonksiyonuna gönderilen 'sayilar' argümanını kendine argüman olarak alır.
3 - wrapper fonksiyonu hem kendi işlevini hem de kareleri_hesapla fonksiyonun işlevini gerçekleştirir ve son olarak zaman_hesapla fonksiyonu return wrapper yapar.
