Python’da Mutable ve Immutable Nedir?

Oğuzhan Çelikarslan
2 min readOct 23, 2021

Nesne yaratıldıktan sonra, bu objenin içinde herhangi bir değişikliğe izin verilmiyorsa biz bu objeye immutable diyebiliriz.

Integer, Float, Decimal, Rational, Complex, Boolean, String, Tuples, Frozen Sets ve kendi tasarladığımız bazı classlar immutable diyebiliriz.

Nesne yaratıldıktan sonra değeri değiştirilebiliyorsa bu nesneye mutable diyebiliriz.

List, Set, Dictionaries, veya kullanıcı tarafından tanımlanmış bazı classlara biz mutable diyebiliriz.

Python’da Her Şey Objedir!

Python’da her şey bir nesnedir ve her nesne identity, type ve value özelliklerine sahiptir.

Identity: Nesnenin bilgisayarın belleğinde bulunduğu adresi ifade eder.

Type: Yaratılan nesnenin türünü belirler. integer, list string vb.

Value: Nesne tarafından saklanan değere tekabül eder. name = ‘Oğuzhan’ gibi.

ID ve Type değeri obje yaratıldıktan sonra değişmezken, Mutable objelerin değerleri(value) zamanla değiştirilebilir.

Aşağıda bir liste oluşturduk ve bu listenin içerisine yeni bir nesne ekledik. Yeni bir nesne eklenmeden önce ve eklendikten sonra ki bellek adreslerine baktığımızda bir değişiklik olmadığını gözlemledik. Bu durumda biz liste için mutable diyebiliriz.

name adında bir değişken tanımladık ve değerini(value) Oğuzhan olarak belirledik. Bellek adresine baktığımızda adres “140714019666800” olarak gözüküyordu. Tekrardan name = “hasan” şeklinde kod yazdık. Name değişkeninin adresini ekrana bastırdığımızda karşımıza farklı bir adres çıktı. Buradan şunu anlayabiliriz ki aslında name değişkenine hasan değerini atayarak yeni bir obje yarattık. Name değişkeninin değerini değiştirmedik.

Yararlandığım Kaynak:

https://www.mygreatlearning.com/blog/understanding-mutable-and-immutable-in-python/

--

--

Oğuzhan Çelikarslan

Python enthusiast who focuses on the problem, break down it, and solves it. https://oguzhann.net