Fonksiyon ve Metot Kavramı

Birçok programlama dilinde olduğu gibi Python’da da programlarımızı alt parçalara bölmek mantıklıdır. Bu yaklaşım, Python’ın da desteklediği fakat C gibi dillerle daha da özdeşleşmiş olan prosedürel (yapısal, structured) programlama tekniğinin olmazsa olmazıdır. Elbette görece küçük programlar tek parça olarak da yazılabilir, fonksiyonlara bölmek zorunlu değildir.


Bir fonksiyon ya sınıf dediğimiz veri yapısının içerisinde bulunur ya da bir sınıf içerisinde değildir. Sınıf içerisinde bulunan fonksiyonlara method yani metot 🇹🇷 denir. Sınıf içerisinde olmayan fonksiyonlara (tanım biraz garip oluyor, farkındayım. Yordam da diyebiliriz) ise function yani fonksiyon 🇹🇷 adı verilir. Hatırlarsanız Python için multi-paradigm bir dil demiştik. Yani hem nesne yönelimli (OOP) hem de prosedürel programlama yapabiliyoruz.

Fonksiyon çağırma işlemi genel olarak şöyle yapılır:

<fonksiyon ismi>([argüman listesi])

Burada <fonksiyon ismi> kısmı ve () zorunlu olup, argüman listesi opsiyoneldir. Argüman herhangi bir ifade olabilir ama örneğin if statement yani if deyimi olamaz, ifade olmalıdır.

Argümanlar birden fazla ise , atomu ile ayrılmalıdır.

print(a)     # a bir argümandır.
print(a, b)  # İki argüman var: a ve b
print(a + b) # a + b ifadesi tek bir argüman oluşturur

Daha önceden de gördüğümüz gibi (bknz: Python Standart Kütüphanesi ve Modüller) bir fonksiyon bir modülün içerisinde ise o fonksiyonu çağırmak için modül ismini de kullanmalıyız.

import math
math.sqrt(100)  # sadece sqrt() yazamayız, math.sqrt() diyoruz.

gibi.


Metot kavramına biraz bakalım. Bir fonksiyon doğrudan isim ile çağrılırken bir metot o metotun ilişkin olduğu bir sınıfın türünden bir değişken olması gerekmektedir. Burada genel sentaks şu şekildedir:

<sınıf türünde değişken>.<metodun ismi>([argüman listesi])

Örneğin str bir sınıftır ve upper() isminde bir metot barındırır. Bu durumda

>>> 'alper'.upper()
'ALPER'

diye bir işlem yapabiliriz. Burada 'alper', str türden bir nesne olmaktadır.

Nesne yönelimli programlama ile konulara sonra bakacağımız için fazla detaya girmiyoruz.

💭 Yorumlar

Yorum altyapısı giscus tarafından (evet tarafından!) sağlanmaktadır. Yorum yazabilmek için GitHub hesabınız üzerinden giriş yapmanız gerekmektedir. Yorumlar, Github Discussions üzerinde saklanmaktadır.

e117184f-ebea-4439-831e-d161bb40658c