koddla

Yazılımcıları bilgi ile güçlendirir.

Python isinstance() Fonksiyonu

Python’un isinstance() fonksiyonu, kodunuzdaki bir nesnenin türünü belirlemek için kullanılır. Bir nesnenin belirli bir sınıfın objesi olup olmadığını veya alt sınıflarından biri olup olmadığını kontrol etmek için kullanılabilir. Bu yazıda, fonksiyonun ne yaptığını, nasıl çalıştığını ve kodunuzda nasıl kullanacağınızı örneklerle ele alacağız.

isinstance() işlevi ne yapar?

Python’daki isinstance() fonksiyonu, bir nesnenin belirli bir sınıfın mı yoksa alt sınıflarından birinin mi örneği olduğunu belirlemek için kullanılır. İki bağımsız değişken alır: kontrol edilecek nesne ve nesnenin örneği olması gereken sınıf veya sınıflar kümesi. Nesne, belirtilen sınıfın veya alt sınıflarından birinin örneğiyse, fonksiyon True döndürür. Aksi takdirde, False döndürür.

Bir örneğe bakalım:

>>> a = [1, 2, 3]
>>> isinstance(a, list)
True

isinstance() fonksiyonu nasıl çalışır ve söz dizimi nedir?

isinstance() işlevi, ilk bağımsız değişken olarak aktarılan nesnenin, ikinci bağımsız değişken olarak aktarılan sınıfın veya sınıflar çiftinin bir örneği olup olmadığını kontrol ederek çalışır.

isinstance() fonksiyonunun söz dizimi aşağıdaki gibidir:

isinstance(object, classinfo)
  • object, türü kontrol edilecek olan nesnedir.
  • classinfo nesnenin bir örneği olması gereken bir sınıf veya sınıflar tuple’i

isinstance() metodunu kullanarak bir nesnenin bir sınıf tuple’ından herhangi birinin örneği olup olmadığını kontrol edebilirsiniz. Örneğin, aşağıdaki kod True değerini döndürür:

>>> isinstance(a, (list, dict, set))
True

Örneklerle isinstance() kullanımı

isinstance() fonksiyonunu Python kodunuzda nasıl kullanabileceğinize dair bazı örneklere bakalım:

Örnek 1: Bir nesnenin belirli bir sınıfın örneği olup olmadığını kontrol etme

# bir_liste adında bir liste oluşturalım 
bir_liste = [1, 2, 3]

# bir_liste'nin bir liste olduğunu kontrol edelim 
print(isinstance(bir_liste, list)) # True

Bu örnekte, bir_liste adında bir liste oluşturuyoruz ve ardından liste sınıfının bir örneği olup olmadığını kontrol etmek için isinstance() fonksiyonunu kullanıyoruz. bir_liste gerçekten de bir liste olduğundan, fonksiyon True değerini döndürür.

Örnek 2: Bir nesnenin bir sınıf tupledaki sınıflara ait obje olup olmadığını kontrol etme

# bir_sozluk adında bir sozluk oluşturalım
bir_sozluk = {"elma": "apple", "armut": "pear"}

# bir_sozluk'un bir sozluk veya bir set olduğunu kontrol edelim
print(isinstance(bir_sozluk, (dict, set))) # True

Bu örnekte, bir_sozluk adında bir sözlük oluşturuyoruz ve ardından dict veya set sınıflarının bir örneği olup olmadığını kontrol etmek için isinstance() fonksiyonunu kullanıyoruz. bir_sozluk bir sözlük olduğu için, fonksiyon True değerini döndürür.

Örnek 3: isinstance() işlevini bir işlevde kullanma

def yazdir(nesne):
    if isinstance(nesne, (list, tuple)):
        for eleman in nesne:
            print(eleman)
    else:
        print("Bu nesne bir liste veya tuple değil.")
        
# bir_liste adında bir liste oluşturalım
bir_liste = [1, 2, 3]

# fonksiyonu çalıştıralım
yazdir(bir_liste)
# Çıktı: 1, 2, 3

Bu örnekte, bir nesneyi argüman olarak alan ve isinstance() fonksiyonunu kullanarak bu nesnenin liste veya tuple sınıflarının bir örneği olup olmadığını kontrol eden bir yazdir() fonksiyonu tanımlıyoruz. Nesne bir liste ya da tuple ise, fonksiyon nesnenin elemanları üzerinde yineleme yapar ve bunları yazdırır. Nesne bir liste ya da tuple değilse, fonksiyon bunu belirten bir mesaj yazdırır.

isinstance() için yaygın kullanım durumları

isinstance() fonksiyonu, çeşitli durumlarda kullanılabilen çok yönlü bir araçtır. isinstance() için bazı yaygın kullanım durumlarına bakalım:

1. Type kontrolü

isinstance() Python’da type kontrolü için sıklıkla kullanılır. Örneğin, üzerinde belirli işlemler yapmadan önce bir fonksiyon argümanının liste olup olmadığını kontrol etmek isteyebilirsiniz.

def liste_islemleri(bir_liste):
    if not isinstance(bir_liste, list):
        raise TypeError("Bu fonksiyon sadece listeler için geçerlidir.")
    # liste işlemleri

2. Object-oriented programlama

isinstance() ayrıca nesne yönelimli programlamada çalışma zamanında bir nesnenin türünü belirlemek için yaygın olarak kullanılır. Bu, aynı yöntemin farklı türlerdeki nesneler üzerinde kullanılabildiği çok biçimliliği uygulamak için yararlı olabilir.

class Nesne:
    def yazdir(self):
        pass

class Liste(Nesne):
    def yazdir(self):
        print("Bu bir liste.")

class Sozluk(Nesne):
    def yazdir(self):
        print("Bu bir sözlük.")

def yazdir(nesne):
    if isinstance(nesne, Liste):
        nesne.yazdir()
    elif isinstance(nesne, Sozluk):
        nesne.yazdir()
    else:
        print("Bu nesne Liste veya Sozluk sınıfından değil.")

3. Farklı veri türlerinin işlenmesi

isinstance() ayrıca farklı veri türlerini daha zarif bir şekilde işlemek için yaygın olarak kullanılır.

def isle(veri):
    if isinstance(veri, str):
        print(veri.upper())
    elif isinstance(veri, (int, float)):
        print(veri * 2)
    else:
        print("Geçersiz veri tipi.")

Sonuç olarak, isinstance() bir nesnenin belirli bir sınıfın veya alt sınıflarından birinin örneği olup olmadığını kontrol etmek için kullanılabilecek güçlü bir araçtır. Tür denetimi, nesne yönelimli programlama ve farklı veri türlerini işleme gibi çeşitli durumlarda kullanılabilir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Back to top