Python’da Nesneler ve Sınıflar

Bu öğreticide, Python nesnelerinin ve sınıflarının temel işlevleri hakkında bilgi edineceksiniz. Bir sınıfın ne olduğunu, nasıl oluşturulacağını ve programınızda nasıl kullanılacağını öğreneceksiniz.

Python Nesneleri ve Sınıfları

Python, nesne yönelimli bir programlama dilidir. Ana vurgunun işlevler üzerinde olduğu prosedür yönelimli programlamanın aksine, nesne yönelimli programlama nesneler üzerinde durur.

Bir nesne, basitçe, bu veriler üzerinde hareket eden bir veri (değişkenler) ve yöntemler (fonksiyonlar) topluluğudur. Benzer şekilde, bir sınıf o nesne için bir plandır.

Sınıfı bir evin taslağı (prototipi) olarak düşünebiliriz. Zeminler, kapılar, pencereler vb. ile ilgili tüm detayları içerir. Bu açıklamalara göre evi inşa ediyoruz. Ev nesnedir.

Bir evin planından birçok ev yapılabildiği gibi, bir sınıftan da birçok nesne oluşturabiliriz. Bir nesneye aynı zamanda bir sınıfın örneği de denir ve bu nesneyi yaratma sürecine örnekleme denir .


Python’da Sınıf Tanımlamak

Python’da fonksiyon tanımlarının def anahtar sözcüğüyle başlaması gibi, sınıf tanımları da bir sınıf anahtar sözcüğüyle başlar.

Sınıf içindeki ilk dizgeye docstring denir ve sınıfın kısa bir açıklaması vardır. Zorunlu olmamakla birlikte, bu şiddetle tavsiye edilir.

İşte basit bir sınıf tanımı.

Bir sınıf, tüm niteliklerinin tanımlandığı yeni bir yerel ad alanı oluşturur. Nitelikler veri veya işlevler olabilir.

Ayrıca çift alt çizgi ile başlayan özel nitelikler de vardır __. Örneğin, __doc__bize o sınıfın belge dizisini verir.

Bir sınıf tanımladığımız anda aynı isimde yeni bir sınıf nesnesi oluşturulur. Bu sınıf nesnesi, farklı niteliklere erişmemize ve o sınıfın yeni nesnelerini başlatmamıza izin verir.

Çıktı


Python’da Nesne Yaratmak

Sınıf nesnesinin farklı niteliklere erişmek için kullanılabileceğini gördük.

O sınıfın yeni nesne örneklerini (örneklerini) oluşturmak için de kullanılabilir. Bir nesne oluşturma prosedürü, bir işlev çağrısına benzer.

Bu, adında yeni bir nesne örneği yaratacaktır.harry. Nesne adı önekini kullanarak nesnelerin niteliklerine erişebiliriz.

Nitelikler veri veya yöntem olabilir. Bir nesnenin yöntemleri, o sınıfın karşılık gelen işlevleridir.

Bu Person.greet, bir işlev nesnesi (sınıfın niteliği) olduğundan, Person.greetbir yöntem nesnesi olacağı anlamına gelir.

Çıktı

selfParametreyi sınıf içindeki fonksiyon tanımında fark etmiş olabilirsiniz ama biz metodu herhangi bir argümanharry.greet() olmadan basitçe çağırdık . Hala işe yaradı.

Bunun nedeni, bir nesne yöntemini çağırdığında, nesnenin kendisinin ilk argüman olarak iletilmesidir. Yani harry.greet()çevirir Person.greet(harry).

Genel olarak, n bağımsız değişken listesiyle bir yöntemi çağırmak, yöntemin nesnesini ilk bağımsız değişkenden önce ekleyerek oluşturulan bir bağımsız değişken listesiyle karşılık gelen işlevi çağırmaya eşdeğerdir.

Bu nedenlerden dolayı, işlevin sınıftaki ilk argümanı nesnenin kendisi olmalıdır. Buna geleneksel olarak deniröz. Başka bir şekilde adlandırılabilir, ancak sözleşmeyi takip etmenizi şiddetle tavsiye ederiz.

Şimdi sınıf nesnesi, örnek nesnesi, işlev nesnesi, yöntem nesnesi ve bunların farklılıklarına aşina olmalısınız.


Python’da yapıcılar

Çift alt çizgi ile başlayan sınıf işlevlerine __özel anlamları olduğu için özel işlevler denir.

Özel bir ilgi alanı, __init__()işlevdir. Bu özel işlev, o sınıfın yeni bir nesnesi başlatıldığında çağrılır.

Bu tür işlevlere Nesne Yönelimli Programlama’da (OOP) yapıcılar da denir. Normalde tüm değişkenleri başlatmak için kullanırız.

Çıktı

Yukarıdaki örnekte, karmaşık sayıları temsil edecek yeni bir sınıf tanımladık. __init__()Değişkenleri başlatmak (varsayılanı sıfırdır) ve get_data()sayıyı düzgün görüntülemek için iki işlevi vardır .

Yukarıdaki adımda dikkat edilmesi gereken ilginç bir nokta, bir nesnenin niteliklerinin anında oluşturulabilmesidir. Yeni bir özellik oluşturdukattrnesne içinsayı2ve onu da okuyun. Ancak bu, nesne için bu özelliği oluşturmaz.num1.


Nitelikleri ve Nesneleri Silme

Bir nesnenin herhangi bir niteliği, ifade kullanılarak herhangi bir zamanda silinebilir del. Çıktıyı görmek için Python kabuğunda aşağıdakileri deneyin.

Del ifadesini kullanarak nesnenin kendisini bile silebiliriz.

Aslında, bundan daha karmaşık. Bunu yaptığımızda c1 = ComplexNumber(1,3), bellekte yeni bir örnek nesne oluşturulur ve adıc1onunla bağlanır.

Komutta del c1bu bağlama kaldırılır ve adc1karşılık gelen ad alanından silinir. Ancak nesne bellekte varlığını sürdürür ve kendisine başka bir ad bağlı değilse, daha sonra otomatik olarak yok edilir.

Python’da referanssız nesnelerin bu otomatik imhasına çöp toplama da denir.

Python'da Nesne Silme
Python’da nesnelerin silinmesi, ad bağlamasını kaldırır

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.