Professional Documents
Culture Documents
Python 4
Python 4
Fonksiyonlar
4.1.Metotlar
Pythonda herhangi bir veri tipiden oluşturulmuş bütün değişkenler obje olarak düşünülür. Metotlarda
her birinin kendine özgü işlevleri olup bu objeler üzerinde işlemler yapan fonksiyonlardır. Mesela
listelerde kullandığımız append metodu ya da stringlerde kullanığımız format metodu gibi.
4.2.Fonksiyonlar
Fonksiyonlar bir kere tanımlayıp içine yapacağı işlemleri yazıp istediğimiz zaman istediğimiz yerde
tekrar tekrar çağırarak kullanabileceğimiz yapılardır. Kodumuzda fonksiyon kullanarak kod
kalabalığından da kurtulmuş oluruz. Fonksiyonların görevi kısaca işlemi bir kere yazıyoruz ve
istediğimiz yerde istediğimiz kadar kullanıyoruz. Mesela bir uygulama yazıyoruz diyelim ve
uygulamanın farklı yerlerinde birkaç kere karekökünün iki katını alma işlemini yapmamız gerekiyor.
Bu işlemin lazım olduğu yerde bu işlemin kodlarını tekrar tekrar yazmak yerine bir tane
karekökününikikikati fonksiyonu oluşturuyoruz ve lazım olan yerlerde bu fonksiyonu çağırarak içine
bu işlemi yapması için yazdığımız kodları çağırmış ve çağırdığımız yerde kullanmış oluyoruz.
Programlama dillerinde bizim oluşturmadığımız gömülü olan önceden tanımlı olan fonksiyonlar
vardır. Mesela type fonksiyonu veya print fonksiyonu gibi. Bu fonksiyonlar Python geliştiricileri
tarafından bizim kullanmamız için yazılmıştır. Ama tabii ki kendi fonksiyonlarımızı da oluşturarak
kullanabiliyoruz.
..
şeklindedir. Fonksiyon tanımlarken def sözcüğünü kullanıyoruz daha sonra fonksiyon ismi yazıyoruz
ve () parantezleri koyuyoruz.
Mesela yukarıdaki görselde çok basit bir fonksiyon oluşturulmuş. Fonksiyon bloğuna çağrıldığında
yapması istenilen işlemler yazılmış. Sonra da fonksiyon çağrılmış. Fonksiyonlar her zaman ()
parantezleriyle oluşturulur ve çağrılır.
Parametreli Fonksiyonlar
Opsiyonel olarak eğer parametre almak istersek bu parantezler arasına yazmamız gerekiyor. Peki
parametre nedir? Ne işe yarar? Parametreler sadece o fonksiyon içinde kullanacağımız
değişkenlerdir. Parametrelerin fonksiyon çağrılırken oluşturulur ve değerleri fonksiyon çağrılırken ()
parantezleri içinde sırayla verilir. Yani oluştururken oluşturduğumuz sıraya göre çağırdığımızda da o
sırayla verilir. Eğer parametre tanımlamadıysak çağırdığımızda da () parantezler içine bir şey
yazmayız. Parametreler sayesinde fonksiyonlarımız kullandığımız yerlere göre değişik işlemler
yapabilir.
Fonksiyon parametre istemediği için çağrılırken parantezlere bir şey verilmez. Eğer verilirse hata
alınır. Çünkü fonksiyon parametre istemiyorken parametre veremezsiniz. Eğer parametre isterse ve
vermezseniz de hata döner.
Bu görselde ise parametre isteyen bir fonksiyon var. İlk önce fonksiyon içine parametre girilmeden
çağrılmış ve hata alınmış. Daha sonra parametre verilerek çağrılmış ve fonksiyon çalışmış. Fonksiyon
da aldığı parametreyi bloğunda kullanmış.
Yukarıdaki görselde ise birden fazla parametre verilmiş. Çağrıldığında fonksiyonun içine verdiğimiz
değerlerde sırayla tanımlanan parametrelere atanıyor. Yani fonksiyonu çağırıp içine yazdığımız ilk
değer tanımlı olan ilk parametreye, ikinci değer ise tanımlanan ikinci parametreye atanıyor.
o Özel Olarak Parametreye Değer Atama: Birden fazla parametre alan bir fonksiyona
herhangi bir parametresine değer atayıp öbürlerine değer atamak istemiyorsak
istediğimiz parametreye özel olarak değer atayabiliriz. Bunu da o parametrenin ismini
yazarak atayacağımız değere eşitleyerek yapıyoruz.
o Esnek Sayıda Değerler (*args): Eğer bir fonksiyonu çağırırken içine istediğimiz kadar
değer vererek çalıştırmak istiyorsak bu yöntemi kullanmalıyız. Bunu yapabilmek için
fonksiyonu tanımlarken parantezine *parametre1 yazmamız gerekiyor. Bu şekilde
istediğimiz kadar değer göndeririz ve fonksiyonda gönderdiğimiz değerleri bir tuple
içine atar ve daha sonra da girdiğimiz bu parametreye atar.
o Esnek Sayıda İsimli Değerler (**kwargs): Yukarıdaki yöntemin aynısı ama burada
argümanlara isim vererek yolluyoruz ve istediğimiz kadar girdiğimiz bu isimli
argümanlar yani parametrelerde bir listede toplanıyor. Bunu yapabilmek için de
fonksiyon tanımlanırken parametre olarak **kwargs yazıyoruz.