python oops concepts python classes
Python'da OOP kavramları: Python Sınıfları ve Nesneleri, Devralma, Aşırı Yükleme, Geçersiz Kılma ve Veri gizleme
Önceki eğitimde biz Giriş / çıkış işlemleri Python sağlar.
Verileri kullanıcıdan veya dış kaynaklardan okumak için bu işlevleri nasıl kullanacağımızı ve ayrıca bu verileri dış kaynaklara nasıl yazacağımızı öğrendik. Ayrıca, işlevleri kullanarak büyük bir kodu nasıl daha küçük yöntemlere böleceğimizi ve bunlara nasıl erişileceğini veya bunlara nasıl erişileceğini öğrendik.
İleri Okuma => Ücretsiz Python Eğitimi Öğreticilerinin Açık Aralığı
Bu eğitimde, OOP adı verilen Gelişmiş Python kavramını ve Python'da bulunan farklı hata türleri kavramlarını ve bunların nasıl ve nerede kullanılacağını tartışacağız.
Ne öğreneceksin:
- VİDEO Eğitimlerini İzleyin
- Sınıflar ve Nesneler
- Python'da Yapıcı
- Miras
- Python'da Yöntem Aşırı Yüklemesi
- Python'da Yöntemi Geçersiz Kılma
- Python'da Veri Gizleme
- Sonuç
- Önerilen Kaynaklar
VİDEO Eğitimlerini İzleyin
1. Video: Python'da Sınıf, Nesneler ve Yapıcı
en iyi youtube mp3 dönüştürücü bedava
2. Video: Python'da Kalıtım Kavramı
3. Video: Python'da Aşırı Yükleme, Geçersiz Kılma ve Veri Gizleme
Sınıflar ve Nesneler
- Python, programlamanın nesnelere daha fazla vurgu yaptığı nesne yönelimli bir programlama dilidir.
- Python'daki neredeyse her şey nesnelerdir.
Sınıflar
Python'daki sınıf bir nesneler koleksiyonudur, bir sınıfı bir plan veya eskiz veya prototip olarak düşünebiliriz. Bir nesnenin tüm ayrıntılarını içerir.
Gerçek dünya örneğinde, Hayvan bir sınıftır, çünkü dünyada farklı Hayvan türlerine sahibiz ve bunların tümü Hayvan adlı bir sınıfa aittir.
Bir sınıf tanımlama
Python'da, 'sınıf' anahtar kelimesini kullanarak bir sınıf tanımlamalıyız.
Sözdizimi:
class classname: #Collection of statements or functions or classes
Misal:
class MyClass: a = 10 b = 20 def add(): sum = a+b print(sum)
Yukarıdaki örnekte, 'Myclass' adlı sınıfı tanımladık ve sırasıyla bazı değişkenleri ve fonksiyonları tanımladık ve tanımladık.
Sınıfın içinde bulunan bu işlevlere veya değişkenlere erişmek için, sınıf adını bir nesnesini oluşturarak kullanabiliriz.
Öncelikle, sınıf adını kullananlara nasıl erişileceğini görelim.
Misal:
class MyClass: a = 10 b = 20 #Accessing variable present inside MyClass print(MyClass.a)
Çıktı
10
Çıktı:
Nesneler
Bir nesne genellikle bir sınıfın bir örneğidir. Sınıfta bulunan her şeye erişmek için kullanılır.
Bir Nesne Oluşturmak
Sözdizimi:
variablename = classname
Misal:
ob = MyClass()
Bu, 'ob' adında yeni bir örnek nesne oluşturacaktır. Bu nesne adını kullanarak Sınıfım içinde bulunan tüm özniteliklere erişebiliriz.
Misal:
class MyClass: a = 10 b = 20 def add(self): sum = self.a + self.b print(sum) #Creating an object of class MyClass ob = MyClass() #Accessing function and variables present inside MyClass using the object print(ob.a) print(ob.b) ob.add()
Çıktı:
10
yirmi
30
Çıktı:
Python'da Yapıcı
Python'da Oluşturucu, bir nesne oluşturulduğunda çalışma zamanı sırasında bir sınıfın üyelerini başlatmak için kullanılan özel bir yöntemdir.
Python'da, çift alt çizgi (__) ile başlayan ve Python'da özel bir anlamı olan bazı özel yerleşik sınıf yöntemlerimiz var.
Kurucunun adı her zaman __init __ () olacaktır.
Açıkça bir yapıcı oluşturmasanız bile, her sınıfın bir kurucu olması gerekir, bu kendi başına bir varsayılan kurucu oluşturacaktır.
Misal:
class MyClass: sum = 0 def __init__ (self, a, b): self.sum = a+b def printSum(self): print(“Sum of a and b is: ”, self.sum) #Creating an object of class MyClass ob = MyClass(12, 15) ob.printSum()
Çıktı:
A ve b'nin toplamı: 27
Çıktı:
Yukarıdaki örnekte gözlemlersek, __init __ () yöntemini çağırmıyoruz çünkü bu sınıfa bir nesne oluşturduğumuzda ve varsa veri üyelerini başlattığımızda otomatik olarak çağrılacaktır.
Bir kurucunun asla herhangi bir değer döndürmeyeceğini, dolayısıyla herhangi bir dönüş ifadesi içermediğini her zaman unutmayın.
Miras
Kalıtım, OOP'lerin en güçlü kavramlarından biridir.
Başka bir sınıfın özelliklerini miras alan bir sınıfa Devralma adı verilir.
Özellikleri miras alan sınıfa alt sınıf / alt sınıf, özelliklerin kendisinden miras alındığı sınıfa ise ana sınıf / temel sınıf adı verilir.
Python üç tür Devralma sağlar:
- Tek Kalıtım
- Çok Düzeyli Kalıtım
- Çoklu Kalıtım
Önerilen Okuma = >> Java'da kalıtım
# 1) Tek Kalıtım
Tekli kalıtımda, bir sınıf yalnızca bir sınıfın özelliklerini miras alır.
Misal:
class Operations: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: “, sum) class MyClass(Operations): c = 50 d = 10 def sub(self): sub = self.c – self.d print(“Subtraction of c and d is: ”, sub) ob = MyClass() ob.add() ob.sub()
Çıktı:
A ve b'nin toplamı: 30
C ve d'nin çıkarılması: 40
Çıktı:
geçmişte web sitelerinin ekran görüntüleri
Yukarıdaki örnekte, 'İşlemler' sınıfının özelliklerini 'Sınıfım' sınıfına alıyoruz.
Dolayısıyla, MyClass nesnelerini kullanarak 'İşlemler' sınıfında bulunan tüm yöntemlere veya ifadelere erişebiliriz.
# 2) Çok Düzeyli Kalıtım
Çok düzeyli Devralmada, bir veya daha fazla sınıf temel sınıf olarak hareket eder.
Bu, ikinci sınıfın birinci sınıfın özelliklerini miras alacağı ve üçüncü sınıfın ikinci sınıfın özelliklerini miras alacağı anlamına gelir. Dolayısıyla ikinci sınıf hem Ebeveyn sınıfı hem de Çocuk sınıfı olarak hareket edecektir.
Misal:
class Addition: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: ”, sum) class Subtraction(Addition): def sub(self): sub = self.b-self.a print(“Subtraction of a and b is: ”, sub) class Multiplication(Subtraction): def mul(self): multi = self.a * self.b print(“Multiplication of a and b is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Çıktı:
A ve b'nin toplamı: 30
A ve b'nin çıkarılması: 10
A ve b'nin çarpımı: 200
Çıktı:
Yukarıdaki örnekte, 'Çıkarma' sınıfı, 'Toplama' sınıfının özelliklerini devralır ve 'Çarpma' sınıfı, 'Çıkarma' sınıfının özelliklerini devralır. Dolayısıyla, 'Çıkarma' sınıfı hem Temel sınıf hem de türetilmiş sınıf olarak hareket edecektir.
# 3) Çoklu Kalıtım
Birden çok sınıfın özelliklerini miras alan sınıfa Çoklu Miras denir.
Daha Fazla Okuma = >> Java, Çoklu Kalıtımı destekler mi?
Misal:
class Addition: a = 10 b = 20 def add(self): sum = self. a+ self.b print(“Sum of a and b is: “, sum) class Subtraction(): c = 50 d = 10 def sub(self): sub = self.c-self.d print(“Subtraction of c and d is: ”, sub) class Multiplication(Addition,Subtraction): def mul(self): multi = self.a * self.c print(“Multiplication of a and c is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Çıktı:
A ve b'nin toplamı: 30
C ve d'nin çıkarılması: 10
A ve c'nin çarpımı: 500
Çıktı:
Python'da Yöntem Aşırı Yüklemesi
Aynı ada sahip ancak farklı türde bir parametreye veya farklı sayıda parametreye sahip birden çok yöntem, Yöntem aşırı yükleme olarak adlandırılır
Misal:
def product(a, b): p = a*b print(p) def product(a, b, c): p = a*b*c print(p) #Gives you an error saying one more argument is missing as it updated to the second function #product(2, 3) product(2, 3, 5)
Çıktı:
30
Çıktı:
Çıktı:
Yöntem aşırı yükleme Python'da desteklenmez, çünkü yukarıdaki örnekte görürsek, aynı 'ürün' adında, ancak farklı sayıda parametreye sahip iki işlev tanımlamış oluruz.
Ancak Python'da, en son tanımlananlar güncellenecek, dolayısıyla ürün (a, b) işlevini kullanmaz hale gelecektir.
Python'da Yöntemi Geçersiz Kılma
Bir alt sınıf yöntemi, üst sınıf yönteminde belirtilenle aynı ada sahipse, buna Yöntemi geçersiz kılma adı verilir.
Yöntemi geçersiz kılmak için kalıtımı kullanmalıyız.
Misal:
class A: def sayHi(): print(“I am in A”) class B(A): def sayHi(): print(“I am in B”) ob = B() ob.sayHi()
Çıktı:
Ben B'deyim
Çıktı:
Python'da Veri Gizleme
Veri gizleme, verileri diğer sınıf üyeleri tarafından erişilebilir olmayacak şekilde özel yapmak anlamına gelir. Sadece beyan edildiği sınıfta erişilebilir.
Python'da, değişkeni gizlemek istiyorsak, değişken adından önce çift alt çizgi (__) yazmamız gerekir.
Misal:
Class MyClass: __num = 10 def add(self, a): sum = self.__num + a print(sum) ob = MyClass() ob.add(20) print(ob.__num) #The above statement gives an error because we are trying to access private variable outside the class
Çıktı:
30
Geri izleme (en son çağrı son):
'DataHiding.py' dosyası, 10. satır,
baskı (nedeniyle .__)
AttributeError: MyClass örneği
'__num özelliği yok
başka hangi e-posta sağlayıcıları var
Çıktı:
Sonuç
Sınıf, nesnenin bir sınıfın örneği olduğu bir nesnenin tüm ayrıntılarını içeren bir plan veya şablondur.
- Başka bir sınıfın özelliklerini bir sınıfa almak istiyorsak, bu kalıtım yoluyla sağlanabilir.
- Kalıtım 3 türdendir: Tek Kalıtım, Çok Düzeyli Kalıtım ve Çoklu Kalıtım.
- Python'da yöntem aşırı yükleme desteklenmez.
- Yöntemi geçersiz kılma, başka bir sınıfta tanımlanan aynı işlevin uygulanmasını geçersiz kılmak için kullanılır.
- Veri niteliklerini özel yapabilir veya gizleyebiliriz, böylece tanımlandığı sınıfın dışında erişilemez.
Yaklaşan eğitimimiz Ek Python kavramları hakkında ayrıntılı olarak daha fazla bilgi verecektir !!
PREV Eğitimi | SONRAKİ Eğitici