Python OOP: Sınıf, Nesne, Kalıtım ve Kurucu Fonksiyon

⚡ Akıllı Özet

Nesne yönelimli programlama Python Bu yaklaşım, ilgili verileri ve davranışları bir araya getirerek, kodları sınıflar ve nesneler etrafında düzenler. Sınıfların nasıl tanımlanacağını, nesnelerin nasıl oluşturulacağını, kalıtımın nasıl uygulanacağını ve özniteliklerin kurucular aracılığıyla nasıl başlatılacağını gösterir.

  • 🔘 Ders planı: Bir sınıf, ilgili verileri ve yöntemleri nesne oluşturmak için yeniden kullanılabilir bir şablon halinde gruplandırır.
  • ☑️ Nesneler: Nesneler, her biri kendi öznitelik değerlerini saklayan bir sınıfın örnekleridir.
  • Sınıfların tanımlanması: `class` anahtar kelimesi, girintili metotlar ve `self` parametresi bir yapıyı tanımlar. Python sınıf.
  • 🧬 Kalıtım: Türetilmiş bir sınıf, temel sınıftan öznitelikler ve metotlar miras alır ve çoklu kalıtımı destekler.
  • Yapıcılar: __init__() metodu, her yeni nesneyi önceden tanımlanmış değerlerle başlatır.
  • 🤖 Yapay zekanın önemi: Py gibi makine öğrenimi kütüphaneleriTorch model katmanları ve ağları olarak Python sınıflar.

Python OOP: Sınıf, Nesne, Kalıtım ve Kurucu Fonksiyon

OOP'lar Python

OOP'lar Python Nesneleri ve sınıfları diğer genel programlama dilleriyle aynı şekilde kullanmaya odaklanan bir programlama yaklaşımıdır. Nesneler herhangi bir gerçek dünya varlığı olabilir. Python geliştiricilerin, kodun yeniden kullanılabilirliğine odaklanarak OOP yaklaşımını kullanarak uygulamalar geliştirmelerine olanak tanır. Sınıflar ve nesneler oluşturmak çok kolaydır. Python.

Sınıf Nedir?

Bir Sınıf Python mantıksal bir grupturping Veri ve fonksiyonların özgürlüğünü sağlar. Keyfi içeriğe sahip ve dolayısıyla kolayca erişilebilir veri yapıları oluşturma olanağı sunar.

Örneğin, müşteri bilgilerini çevrimiçi olarak almak isteyen herhangi bir banka çalışanı şuraya gider: müşteri sınıfıBurada işlem detayları, para çekme ve yatırma detayları, ödenmemiş borç vb. gibi tüm özellikleri listelenecektir.

nasıl tanımlanır Python sınıflar

Sınıfı tanımlamak için aşağıdaki noktaları göz önünde bulundurmanız gerekir

) 1 Adım In Python, sınıflar tarafından tanımlanır "Sınıf" Anahtar kelime

class myClass():

) 2 Adım Sınıfların içinde bu sınıfın parçası olan işlevleri veya yöntemleri tanımlayabilirsiniz.

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Burada " yazdıran method1'i tanımladık"Guru99.”
  • Tanımladığımız bir diğer yöntem ise “Yazılım Testi” + SomeString yazdıran yöntem2'dir. SomeString çağıran yöntemin sağladığı değişkendir

) 3 Adım Bir sınıftaki her şey girintilidir, tıpkı fonksiyondaki kod, döngü, if ifadesi vb. gibi. Girintisiz olan hiçbir şey sınıfta değildir

Tanımlama Python sınıflar

NOT: “self” kullanımı hakkında Python

  • "Self" argümanı nesnenin kendisini ifade eder. Bu nedenle "self" kelimesi kullanılmıştır. Dolayısıyla bu metodun içinde "self", üzerinde işlem yapılan bu nesnenin belirli örneğini ifade edecektir.
  • Benlik, geleneksel olarak tercih edilen isimdir. Pythonörnek yöntemlerin ilk parametresini belirtmek için s Python. Bu bir parçası Python nesnelerin üyelerine erişmek için sözdizimi

) 4 Adım Sınıfın bir nesnesini yapmak için

c = myClass()

) 5 Adım Bir sınıfta bir yöntemi çağırmak için

c.method1()
    c.method2(" Testing is fun")
  • Dikkat edin, method1 veya method2'yi çağırdığımızda self anahtar kelimesini belirtmemize gerek yok. Bu işlem otomatik olarak bizim için hallediliyor. Python Çalışma süresi.
  • Python Örnekte bir örnek yöntemini çağırdığınızda, kasıtlı olarak sağlasanız da sağlamasanız da, çalışma zamanı "self" değerini iletecektir
  • Sadece kişisel olmayan argümanları önemsemek zorundasın

) 6 Adım İşte kodun tamamı

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  def method2(self,someString):    
      print("Software Testing:" + someString)
  
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()

Miras nasıl çalışır?

Kalıtım, nesne yönelimli programlamada kullanılan bir özelliktir; mevcut bir sınıfta daha az değişiklik yaparak veya hiç değişiklik yapmadan yeni bir sınıfın tanımlanmasını ifade eder. Yeni sınıf denir Türetilmiş sınıf ve miras aldığı kişiden denir baz. Python mirası destekler; o da destekliyor çoklu miras. Bir sınıf, alt sınıf veya mirasçı sınıf adı verilen başka bir sınıftan nitelikleri ve davranış yöntemlerini miras alabilir.

Miras sistemi nasıl işler? Python

Python Kalıtım Sözdizimi

class DerivedClass(BaseClass):
    body_of_derived_class

) 1 Adım Aşağıdaki kodu çalıştırın

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print ("childClass Method1")
        
  def method2(self):
        print("childClass method2")     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Dikkat edin, childClass'ta method1 tanımlanmamış ancak üst sınıf myClass'tan türetilmiştir. Çıktı şu şekildedir:Guru99.”

) 2 Adım Satır # 8 ve 10'un açıklamasını kaldırın. Kodu çalıştırın

Artık yöntem 1, childClass'ta tanımlandı ve “childClass Method1” çıktısı doğru şekilde gösterildi.

) 3 Adım 9. Satırın yorumunu kaldırın. Kodu çalıştır

Sözdizimini kullanarak ebeveyn sınıfın bir yöntemini çağırabilirsiniz.

ParentClassName.MethodName(self)

Bizim durumumuzda, myClass.method1(self) yöntemini çağırıyoruz ve Guru99 beklendiği gibi basıldı.

4. Adım) 19. Satırdaki açıklamayı bırakın. Kodu çalıştırın.

Alt sınıfın Yöntem 2'si çağrılır ve beklendiği gibi “childClass method2” yazdırılır.

Python Kurucular

Yapıcı, bir nesneyi önceden tanımlanmış değerlere örnekleyen bir sınıf işlevidir.

Çift alt çizgi (_) ile başlar. __init__() metodudur.

Aşağıdaki örnekte yapıcıyı kullanarak kullanıcının adını alıyoruz.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

Çıktı şöyle olacaktır:

Hoş Geldiniz Guru99, Alex

Python 2 Örnek

Yukarıdaki kodlar Python 3 örnek, Eğer koşmak istiyorsanız Python 2 Lütfen aşağıdaki kodu dikkate alın.

# How to define Python classes
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
  def method2(self,someString):    
      print "Software Testing:" + someString
      
   
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()


#How Inheritance works
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
      
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print "childClass Method1" 
        
  def method2(self):
        print "childClass method2"     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Bir sonraki eğitimimizi öğrenin Polimorfizm Python

SSS

Bir sınıf, nitelikleri ve yöntemleri tanımlayan bir şablondur; bir nesne ise o sınıftan oluşturulmuş somut bir örnektir. Bir sınıf birçok nesne oluşturabilir ve her nesnenin kendine özgü özellikleri vardır.ping kendi verileri.

Python Nesne yönelimli programlama dört temel üzerine kuruludur: kapsülleme (verileri metotlarla birleştirme), mutlak değertrac(Karmaşıklığı gizleme), kalıtım (temel sınıfı yeniden kullanma) ve polimorfizm (tek arayüz, birçok biçim).

Sınıf değişkenleri sınıf gövdesi içinde tanımlanır ve her örnek tarafından paylaşılır. Örnek değişkenleri __init__ içinde self kullanılarak atanır ve yalnızca tek bir nesneye aittir.

`super()` fonksiyonu, üst sınıfa bir vekil nesne döndürerek, alt sınıfın üst sınıfın metotlarını veya kurucusunu doğrudan adlandırmadan çağırmasına olanak tanır. Genellikle kalıtım yoluyla alınan öznitelikleri başlatmak için `super().__init__()` şeklinde yazılır.

Kapsülleme, bir nesnenin iç verilerine doğrudan erişimi kısıtlar. PythonBir özniteliğin başına tek alt çizgi (_name) ekleyerek korumalı (protected) olarak, çift alt çizgi (__name) ekleyerek ise isim değiştirme (name mangling) özelliğini kullanabilirsiniz.

Evet. Bir Python Bir sınıf, Child(A, B) sınıfı gibi birden fazla üst sınıftan miras alabilir. Python mro() yöntemiyle incelenen Yöntem Çözümleme Sırası (MRO) kullanılarak yinelenen yöntem adları çözümlenir.

Nesne yönelimli programlama, yapay zeka ve makine öğrenimi çerçevelerinin merkezinde yer alır. Python gibi kütüphaneler bu bağlamda önemlidir.Torch ve scikit-learn, ağları, katmanları ve tahmincileri sınıflar olarak modelliyor; bu nedenle, modeller oluşturmak için bu sınıflardan alt sınıflar oluşturabilir ve bunları yeniden kullanabilirsiniz.

Evet. GitHub Copilot ve yapay zeka asistanları üretiyor. Python Kısa bir komut istemiyle sınıfları, kurucuları ve kalıtımı otomatikleştirirler. Tekrarlayan şablon kodlarını otomatikleştirirler, ancak doğru mantık için çıktıyı incelemeniz gerekir.

Bu yazıyı şu şekilde özetleyin: