koddla

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

Python id() Fonksiyonu

Python, çeşitli amaçlar için kullanılabilecek birçok yerleşik fonksiyona sahiptir. Bu fonksiyonlardan biri de bellekteki bir nesnenin kimliğini belirlemek için kullanılan id() fonksiyonudur. Bu fonksiyon, iki değişkenin bellekte aynı nesneye işaret edip etmediğini belirlemek için kullanılabildiğinden, özellikle değişken nesnelerle çalışırken kullanışlıdır.

id() işlevi ne yapar?

Python’daki id() fonksiyonu bellekteki bir nesnenin kimliğini döndürür. Bu kimlik benzersizdir ve nesne için nesne var oldukça sabittir. Aynı nesneye işaret eden birden fazla değişkeniniz varsa, id() işlevi hepsi için aynı değeri döndürecektir. Bu fonksiyon, iki değişkenin bellekte aynı nesneye işaret edip etmediğini belirlemenize yardımcı olabileceğinden, değişken nesnelerle çalışırken yararlı olabilir.

İşlev nasıl çalışır ve sözdizimi nedir?

id() fonksiyonu yerleşik bir işlevdir, bu nedenle herhangi bir modül içe aktarılmadan doğrudan çağrılabilir. Sözdizimi aşağıdaki gibidir:

id(object)

object parametresi, kimliğini belirlemek istediğiniz nesnedir. Fonksiyon, nesnenin kimliğini bir tamsayı olarak döndürür.

Örneklerle id() fonksiyonunun kullanımı

id() fonksiyonunu kodunuzda basitçe çağırarak ve kimliğini belirlemek istediğiniz nesneyi girerek kullanabilirsiniz. Fonksiyonun nasıl çalıştığını gösteren birkaç örneğe bakalım:

Örnek 1:

a = [1, 2, 3]
b = [1, 2, 3]
c = a

print(id(a))
print(id(b))
print(id(c))

Bu örnekte, a, b ve c olmak üzere üç değişkenimiz var. a ve b farklı liste nesnelerine işaret ederken, c, a ile aynı nesneye işaret ediyor. Bu değişkenlerden a ve b‘nin id’si farklı olacak, ancak c ile a ayni id’ye sahip olacak.

Örnek 2:

a = [1, 2, 3]
b = a

print(id(a))
print(id(b))

Bu örnekte, a ve b olmak üzere iki değişkenimiz var. a ve b aynı liste nesnesine işaret ediyor ve bu değişkenlerin id’si aynı olacak.

Örnek 3:

x = "Hello World"
y = x
z = "Hello World"

print(id(x))
print(id(y))
print(id(z))

Bu örnekte, x, y ve z olmak üzere üç değişkenimiz var. x ve y aynı string nesnesine işaret ederken, z başka bir string nesnesine işaret ediyor. Dolayısıyla z‘nin id’si diğer ikisinden farklı olacak.

Örnek 4:

x = [1, 2, 3]
y = x
x.append(4)

print(id(x))
print(id(y))

Bu örnekte, x ve y olmak üzere iki değişkenimiz var. x ve y aynı liste nesnesine işaret ediyor. x liste nesnesine 4 değerini ekliyoruz. Ancak bu değişkenlerin işaret ettikleri nesne aynı olduğu için x ve y‘nin kimliği de aynı kalacak.

Uygulama açısından bu işlev için yaygın kullanım durumları nelerdir?

id() işlevi özellikle listeler ve sözlükler gibi değişebilir nesnelerle çalışırken kullanışlıdır. İki değişkenin bellekte aynı nesneye işaret edip etmediğini belirlemek için kullanılabilir. Bu, iki değişkenin içeriğini karşılaştırmak istediğiniz, ancak referansları karşılaştırmak istemediğiniz durumlarda yararlı olabilir.

id() fonksiyonunun bir diğer kullanım alanı da hata ayıklamadır. Belirli bir kod parçasının neden beklendiği gibi çalışmadığından emin değilseniz, bellekteki nesnelerin kimliklerini kontrol etmek ve beklediğinizle eşleşip eşleşmediklerini görmek için id() işlevini kullanabilirsiniz.

Ayrıca id(), bir fonksiyona bir nesne referansı yerine benzersiz bir nesne aktarıldığından emin olmak için de kullanılabilir. Örneğin, bir önbellekle çalışırken, zaten var olan bir nesneye referans yerine yeni bir nesnenin eklendiğinden emin olmak için önbelleğe eklemeden önce anahtar olarak aktarılan bir nesnenin kimliğini kontrol edebilirsiniz.

Kısacası, id() işlevi bellekteki nesnelerin davranışını anlamak için kullanışlı bir araç olabilir. Dolayısıyla kodunuzun verimliliğini ve doğruluğunu artırmak için kullanılabilir.

Özetle, Python’daki id() işlevi, bellekteki bir nesnenin kimliğini belirlemenizi sağlayan basit ama güçlü bir araçtır. İki değişkenin aynı nesneyi gösterip göstermediğini belirlemek, kodda hata ayıklamak ve bir fonksiyona benzersiz bir nesne aktarıldığından emin olmak gibi çeşitli durumlarda yararlı olabilir.

Bir yanıt yazın

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

Back to top