Programlama Kolaylığı – Python Analizi Yaptırma Fiyatları – Python Yazılım Analizi Örnekleri – Ücretli Python Analizi Yaptırma – Python Dili
Programlama Kolaylığı
Programcılar aynı kodu bir kereden fazla yazmaktan kaçınmak isterler. Daha önce işlevler yaparak bundan kaçındık, ama şimdi daha incelikli bir sorunu ele alacağım. Halihazırda bir sınıfınız varsa ve buna çok benzer bir sınıf oluşturmak istiyorsanız ne olacak?
Belki de yalnızca birkaç yöntem ekleyen biri? Bu yeni sınıfı oluştururken, eskisinden tüm kodu yenisine kopyalamak zorunda kalmazsınız. Ekranda kendini çizmeyi bilen Shape adında bir sınıfınız zaten olabilir.
Şimdi ekranda kendini çizmeyi de bilen ama buna ek olarak kendi alanını da hesaplayabilen Rectangle adında bir sınıf yapmak istiyorsunuz. Shape’in gayet iyi çalışan bir yöntemi varken, yeni bir çizim yöntemi yapmak için gereken tüm işi yapmak istemezsiniz. Ee ne yapıyorsun? Rectangle’ın yöntemleri Shape’den devralmasına izin verdiniz. Bunu öyle bir şekilde yapabilirsiniz ki, bir Rectangle nesnesinde çizim çağrıldığında, Shape sınıfındaki yöntem otomatik olarak çağrılır. Bu bölümde biraz sonra bunun ayrıntılarına gireceğim.
Sınıflar ve Türler
Şimdiye kadar, derslerin ne olduğu hakkında bir fikir edinmeye başladın ya da sana lanet olası şeyleri nasıl yapacağını söylemem için sabırsızlanmaya başladın. Teknik ayrıntılara geçmeden önce, sınıfın ne olduğuna ve bir türden nasıl farklı (veya benzer) olduğuna bir göz atalım.
Sınıf Nedir?
“Sınıf” kelimesini, “nazik” veya “tür” gibi kelimelerle aşağı yukarı eşanlamlı olarak kullanarak çokça etrafa saçıyorum. Birçok yönden, bir sınıf tam olarak budur. Tüm nesneler bir sınıfa aittir ve o sınıfın örnekleri olduğu söylenir.
Örneğin, pencerenizden dışarı bakıp bir kuş görürseniz, o kuş “kuşlar” sınıfının bir örneğidir. Bu, birkaç alt sınıfı olan çok genel (soyut) bir sınıftır: kuşunuz “karaçam” alt sınıfına ait olabilir.
“Kuşlar” sınıfını tüm kuşların kümesi olarak düşünebilirsiniz, “karaçamlar” sınıfı ise bunun sadece bir alt kümesidir. Bir sınıfa ait nesneler başka bir sınıfa ait nesnelerin bir alt kümesini oluşturduğunda, birincisine ikincinin alt sınıfı denir. Bu nedenle, “karaçam”, “kuşların” bir alt sınıfıdır. Tersine, “kuşlar”, “karaçamların” bir üst sınıfıdır.
■Not : Günlük konuşmada, nesne sınıflarını “kuşlar” veya “karaçamlar” gibi çoğul isimlerle belirtiriz. Python’da, tekil, büyük harfli isimlerin kullanılması alışılmış bir durumdur.
Bu şekilde ifade edildiğinde, alt sınıfların ve üst sınıfların anlaşılması kolaydır. Ancak nesne yönelimli programlamada, alt sınıf ilişkisinin önemli sonuçları vardır çünkü bir sınıf desteklediği yöntemlerle tanımlanır.
Bir sınıfın tüm örnekleri bu yöntemlere sahiptir, dolayısıyla tüm alt sınıfların tüm örnekleri de bunlara sahip olmalıdır. Alt sınıfları tanımlamak, o zaman yalnızca daha fazla yöntem tanımlama (veya belki de mevcut olanlardan bazılarını geçersiz kılma) meselesidir.
Örneğin, Bird fly yöntemini sağlayabilirken Penguin (Bird’ün bir alt sınıfı) eatFish yöntemini ekleyebilir. Bir penguen sınıfı oluştururken, muhtemelen üst sınıfın bir yöntemini, yani uçma yöntemini de geçersiz kılmak istersiniz. Bir Penguen örneğinde, bu yöntem ya hiçbir şey yapmamalı ya da penguenlerin uçamadığı göz önüne alındığında muhtemelen bir istisna oluşturmalıdır.
Python’un eski sürümlerinde, türler ve sınıflar arasında keskin bir ayrım vardı. Yerleşik nesnelerin türleri vardı, özel nesnelerinizin sınıfları vardı. Sınıflar oluşturabilirsiniz, ancak türler oluşturamazsınız. Python’un son sürümlerinde işler değişmeye başlıyor.
Temel türler ve sınıflar arasındaki ayrım bulanıklaşıyor. Artık yerleşik türlerin alt sınıflarını (veya alt türlerini) oluşturabilirsiniz ve türler daha çok sınıf gibi davranıyor. Muhtemelen, dile daha aşina olana kadar bu değişikliği pek fark etmeyeceksiniz. Eğer ilgileniyorsanız, daha fazla bilgi bulabilirsiniz.
Programlama dili
En zor programlama dili
Tüm programlama dilleri
İlk programlama dili
Yazılım dilleri sıralaması
Yazılım dilleri ve kullanım Alanları
En iyi yazılım dilleri
En iyi yazılım programları
Kendi Sınıflarınızı Oluşturma
Nihayet! Kendi derslerinizi oluşturacaksınız! Tamam, yeterince heves. Basit bir sınıfa geçelim. Bu örnek, bir sınıf deyiminin içine yazılmaları dışında işlev tanımlarına benzeyen üç yöntem tanımı içerir. Kişi, elbette, sınıfın adıdır.
Class deyimi, işlevlerin tanımlandığı kendi ad alanını oluşturur. (Bu bölümün ilerisindeki “Sınıf Ad Alanı” kısmına bakın.) Bütün bunlar iyi görünüyor, ancak bu self parametresinin ne olduğunu merak edebilirsiniz. Nesnenin kendisini ifade eder. Ve bu hangi nesne?
Tamam, bu örnek biraz bariz olabilir ama belki de benliğin ne olduğunu açıklığa kavuşturuyor. setName’i çağırdığımda ve foo’yu selamladığımda, foo’nun kendisi otomatik olarak her durumda ilk parametre olarak iletilir ve çok uygun bir şekilde self olarak adlandırdığım parametredir. Aslında ona ne derseniz deyin, ama o her zaman nesnenin kendisi olduğu için, gelenek gereği neredeyse her zaman benlik olarak adlandırılır.
Self’in burada neden yararlı, hatta gerekli olduğu açık olmalıdır. Bu olmadan, yöntemlerin hiçbiri nesnenin kendisine, özniteliklerini manipüle etmeleri gereken nesneye erişemezdi.
Nitelikler, İşlevler ve Yöntemler
self parametresi (önceki bölümde bahsedilen) aslında metotları fonksiyonlardan ayıran şeydir. Yöntemlerin (veya daha teknik olarak, bağlı yöntemlerin) ait oldukları örneğe bağlı ilk parametreleri vardır: bunu sağlamak zorunda değilsiniz. Dolayısıyla, bir niteliği kesinlikle düz bir işleve bağlayabilseniz de, o özel self parametresine sahip olmayacaktır.
■Not: Sınıfların kendi üst sınıflarında (daha spesifik olarak, üst sınıflarının yapıcılarında) yöntemleri nasıl çağırdığını görüyorsunuz. Bu yöntemler doğrudan sınıfta çağrılır; öz parametrelerini herhangi bir şeye bağlamazlar ve bu nedenle ilişkisiz yöntemler olarak adlandırılırlar.
Self parametresini kaybetmeden, tıpkı bir fonksiyon gibi bağlı bir metodu nasıl kullanabileceğinizi gösterdim. Bu, yöntemleri, harita, filtre ve küçültme gibi kullanışlı araçlarla daha önce işlevleri kullandığım süslü yolların çoğunda kullanabileceğiniz anlamına gelir. Bu yeteneklere bazı örnekler vereceğim. Hepsi oldukça açıklayıcı olmalıdır.
Bu sınıf, önceki örneklerden daha fazla koda sahiptir, ancak yine de oldukça basittir. Sadece bazı yiyecek türlerini seven ve bazılarını diğerlerinden daha çok seven bir tür yemek uzmanını (adından da anlaşılacağı gibi) temsil etmesi amaçlanmıştır.
init yöntemi, nesneleri, boş bir liste içeren goodFood adlı bir öznitelik vererek basitçe başlatır. addGoodFood yöntemi, listeye bir yiyecek türü ekler; burada eklenen ilk yiyecek türü uzmanın favorisi, sonraki yiyecek türü ikinci seçenektir ve bu böyle devam eder.
Likes yöntemi, uzmanın belirli bir yiyecek türünü beğenip beğenmediğini (goodFood’a eklenip eklenmediğini) kontrol eder ve son olarak tercih edilen yönteme iki yiyecek türü verilir (her ikisi de beğenilmelidir) ve tercih edileni döndürür.
En iyi yazılım dilleri En iyi yazılım programları En zor programlama dili İlk programlama dili Programlama dili Tüm programlama dilleri Yazılım dilleri sıralaması Yazılım dilleri ve kullanım Alanları