Python callable() fonksiyonu nedir?

Selamlar. Bu yazının konusu Python callable fonksiyonu nedir olacak. Bir önceki yazı CredSSP hatası hakkındaydı. Bu yazıda bir nesnenin çağırılabilir olup olmadığını bize True ya da False olarak döndüren callable fonksiyonunu göreceğiz.

Python callable fonksiyonu nedir

Python callable fonksiyonu nedir?

Fonksiyon gibi nesneler çağırılabilirdir. Örneğin bir değişken çağırılabilir olarak kabul görmemektedir. Bu Python dilinde böyle geçiyor belki farklı dillerde fonksiyon ya da değişken tamamen callable durumdadır. Yazı çok uzun olmayacak ama bazı kullanım şekillerine bakalım:

Modüllerde Kontrol

Python modüllerinde kontrolleri şöyle sağlayabiliriz:

import sys

print(callable(sys.version))

Sonuç false dönecek çünkü version bir fonksiyon ya da class değil. Gelin bi fonksiyonla deneyelim. Örneğin getrecursionlimit için konuşalım:

import sys

print(callable(sys.getrecursionlimit))

Fonksiyonlara Örnek

Fonksiyonlarda şöyle kullanabilirsiniz:

def thisIsCallable():
    print("Callable")

print(callable(thisIsCallable))

Classlara Örnek

Eğer classlar ile çalışıyorsanız callable olup olmadıklarına bakabilirsiniz.

class CallableDeneme:
    def yazalim(self):
        print("Cagirilabilir")

print(callable(CallableDeneme))

cd = CallableDeneme()

cd()

Yukarıdaki yöntemde sonuç callable gibi görünse de cd() instance’ı object is not callable hatası döndürecektir. Bunun için __call__ fonksiyonunu kullanmalıyız. Bu fonksiyonla o çalıştığımız class’a callable diyebiliriz. Şöyle örnekleyelim:

class CallableDeneme:
    def __call__(self):
        print("Cagirilabilir")

print(callable(CallableDeneme))

cd = CallableDeneme()

cd()

Bu yazının konusu Python callable fonksiyonu nedir oldu. Umarım faydalı bir yazı olmuştur. Bazı durumlarda yüklediğimiz kütüphanelerde vs. nesnenin değişken mi fonksiyon mu belli olmuyor. Siz de bu yöntemle belki kontrol edebilirsiniz.

Hatalı gördüğünüz ya da eksik gördüğünüz bir nokta var ise belirtmeniz beni memnun edecektir. Okuduğunuz için teşekkür ederim.