Python OOPs: Κλάση, Αντικείμενο, Κληρονομικότητα και Κατασκευαστής

⚡ Έξυπνη Σύνοψη

Αντικειμενοστρεφής προγραμματισμός σε Python οργανώνει τον κώδικα γύρω από κλάσεις και αντικείμενα, ομαδοποιώντας σχετικά δεδομένα και συμπεριφορές. Αυτή η προσέγγιση δείχνει πώς να ορίζετε κλάσεις, να δημιουργείτε αντικείμενα, να εφαρμόζετε κληρονομικότητα και να αρχικοποιείτε χαρακτηριστικά με κατασκευαστές.

  • 🔘 Σχέδιο τάξης: Μια κλάση ομαδοποιεί σχετικά δεδομένα και μεθόδους σε ένα επαναχρησιμοποιήσιμο σχέδιο για τη δημιουργία αντικειμένων.
  • ☑️ Αντικείμενα: Τα αντικείμενα είναι στιγμιότυπα μιας κλάσης, καθένα από τα οποία αποθηκεύει τις δικές του τιμές χαρακτηριστικών.
  • ✅ Ορισμός κλάσεων: Η λέξη-κλειδί κλάσης, οι μέθοδοι με εσοχή και η παράμετρος self ορίζουν ένα Python τάξη.
  • 🧬 Κληρονομία: Μια παράγωγη κλάση κληρονομεί χαρακτηριστικά και μεθόδους από μια βασική κλάση και υποστηρίζει πολλαπλή κληρονομικότητα.
  • ️ Κατασκευαστές: Η μέθοδος __init__() αρχικοποιεί κάθε νέο αντικείμενο με προκαθορισμένες τιμές.
  • 🤖 Συνάφεια με την Τεχνητή Νοημοσύνη: Βιβλιοθήκες μηχανικής μάθησης όπως η PyTorεπίπεδα και δίκτυα μοντέλων ch ως Python τάξεις.

Python OOPs: Κλάση, Αντικείμενο, Κληρονομικότητα και Κατασκευαστής

OOPs μέσα Python

OOPs μέσα Python είναι μια προγραμματιστική προσέγγιση που εστιάζει στη χρήση αντικειμένων και κλάσεων όπως και άλλες γενικές γλώσσες προγραμματισμού. Τα αντικείμενα μπορεί να είναι οποιεσδήποτε πραγματικές οντότητες. Python επιτρέπει στους προγραμματιστές να αναπτύσσουν εφαρμογές χρησιμοποιώντας την προσέγγιση OOPs με κύρια εστίαση στην επαναχρησιμοποίηση κώδικα. Είναι πολύ εύκολο να δημιουργήσετε κλάσεις και αντικείμενα Python.

Τι είναι μια Τάξη;

Μια τάξη σε Python είναι μια λογική ομάδαping δεδομένων και συναρτήσεων. Δίνει την ελευθερία δημιουργίας δομών δεδομένων που περιέχουν αυθαίρετο περιεχόμενο και ως εκ τούτου είναι εύκολα προσβάσιμες.

Για παράδειγμα, για οποιονδήποτε τραπεζικό υπάλληλο που θέλει να ανακτήσει τα στοιχεία του πελάτη ηλεκτρονικά, θα πήγαινε στο κατηγορία πελατών, όπου θα αναφέρονται όλα τα χαρακτηριστικά του, όπως οι λεπτομέρειες συναλλαγής, οι λεπτομέρειες ανάληψης και κατάθεσης, το ανεξόφλητο χρέος κ.λπ.

Πώς να ορίσετε Python τάξεις

Για να ορίσετε την κλάση πρέπει να λάβετε υπόψη τα ακόλουθα σημεία

Βήμα 1) In Python, οι κλάσεις ορίζονται από το "Τάξη" λέξη-κλειδί

class myClass():

Βήμα 2) Μέσα σε κλάσεις, μπορείτε να ορίσετε συναρτήσεις ή μεθόδους που αποτελούν μέρος αυτής της κλάσης

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Εδώ έχουμε ορίσει τη μέθοδο1 που εκτυπώνει "Guru99. "
  • Μια άλλη μέθοδος που έχουμε ορίσει είναι η μέθοδος2 που εκτυπώνει το "Software Testing"+ SomeString. SomeString είναι η μεταβλητή που παρέχεται από τη μέθοδο κλήσης

Βήμα 3) Τα πάντα σε μια κλάση έχουν εσοχή, όπως και ο κώδικας στη συνάρτηση, βρόχο, εντολή if κ.λπ. Οτιδήποτε δεν έχει εσοχή δεν βρίσκεται στην κλάση

Καθορίζω Python τάξεις

ΣΗΜΕΊΩΣΗ: Σχετικά με τη χρήση του "self" στο Python

  • Το αυτοεπιχείρημα αναφέρεται στο ίδιο το αντικείμενο. Εξ ου και η χρήση της λέξης εαυτός. Έτσι, μέσα σε αυτή τη μέθοδο, ο εαυτός θα αναφέρεται στη συγκεκριμένη περίπτωση αυτού του αντικειμένου στο οποίο γίνεται η επέμβαση.
  • Self είναι το όνομα που προτιμάται από τη σύμβαση Pythons για να υποδείξετε την πρώτη παράμετρο των μεθόδων παρουσίας στο Python. Είναι μέρος του Python σύνταξη για πρόσβαση σε μέλη αντικειμένων

Βήμα 4) Για να φτιάξετε ένα αντικείμενο της τάξης

c = myClass()

Βήμα 5) Για να καλέσετε μια μέθοδο σε μια τάξη

c.method1()
    c.method2(" Testing is fun")
  • Παρατηρήστε ότι όταν καλούμε τη μέθοδο1 ή τη μέθοδο2, δεν χρειάζεται να δώσουμε την αυτο-λέξη-κλειδί. Αυτό γίνεται αυτόματα για εμάς από το Python χρόνο εκτέλεσης.
  • Python Ο χρόνος εκτέλεσης θα περάσει την τιμή "self" όταν καλείτε μια μέθοδο παρουσίας, είτε την παρέχετε εσκεμμένα είτε όχι
  • Απλώς πρέπει να νοιάζεσαι για τα επιχειρήματα που δεν αφορούν τον εαυτό σου

Βήμα 6) Εδώ είναι ο πλήρης κώδικας

# 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()

Πώς λειτουργεί το Inheritance

Η κληρονομικότητα είναι ένα χαρακτηριστικό που χρησιμοποιείται στον αντικειμενοστραφή προγραμματισμό. αναφέρεται στον ορισμό μιας νέας κλάσης με λιγότερη ή καμία τροποποίηση σε μια υπάρχουσα κλάση. Η νέα τάξη ονομάζεται παράγωγη τάξη και από ένα που κληρονομεί ονομάζεται το βάση. Python υποστηρίζει την κληρονομικότητα. υποστηρίζει επίσης πολλαπλές κληρονομιές. Μια κλάση μπορεί να κληρονομήσει ιδιότητες και μεθόδους συμπεριφοράς από μια άλλη κλάση που ονομάζεται υποκλάση ή κλάση κληρονόμου.

Πώς λειτουργεί η κληρονομικότητα Python

Python Σύνταξη κληρονομικότητας

class DerivedClass(BaseClass):
    body_of_derived_class

Βήμα 1) Εκτελέστε τον παρακάτω κώδικα

# 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()

Σημειώστε ότι η μέθοδος 1 στην childClass δεν έχει οριστεί, αλλά προέρχεται από τη γονική myClass. Η έξοδος είναι "Guru99. "

Βήμα 2) Αφαίρεση σχολίου Γραμμή # 8 & 10. Εκτελέστε τον κωδικό

Τώρα, η μέθοδος 1 ορίζεται στο childClass και η έξοδος "childClass Method1" εμφανίζεται σωστά.

Βήμα 3) Απαλοιφή σχολίων Γραμμή #9. Εκτελέστε τον κωδικό

Μπορείτε να καλέσετε μια μέθοδο της γονικής κλάσης χρησιμοποιώντας τη σύνταξη

ParentClassName.MethodName(self)

Στην περίπτωσή μας, καλούμε το myClass.method1(self) και GuruΤο 99 εκτυπώνεται όπως αναμενόταν

Βήμα 4) Γραμμή χωρίς σχόλια #19. Εκτελέστε τον κωδικό.

Η μέθοδος 2 της θυγατρικής κλάσης καλείται και η "μέθοδος childClass2" εκτυπώνεται όπως αναμένεται.

Python Κατασκευαστές

Ένας κατασκευαστής είναι μια συνάρτηση κλάσης που δημιουργεί ένα αντικείμενο σε προκαθορισμένες τιμές.

Ξεκινά με διπλή υπογράμμιση (_). Χρησιμοποιεί τη μέθοδο __init__()

Στο παρακάτω παράδειγμα παίρνουμε το όνομα του χρήστη που χρησιμοποιεί τον κατασκευαστή.

class User:
    name = ""

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

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

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

Η έξοδος θα είναι:

Καλωσήρθατε στην Guru99, Άλεξ

Python 2 Παράδειγμα

Οι παραπάνω κωδικοί είναι Python 3 παραδείγματα, Αν θέλετε να τρέξετε μέσα Python 2, λάβετε υπόψη τον ακόλουθο κώδικα.

# 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()

Μάθετε το επόμενο σεμινάριο μας σχετικά με Πολυμορφισμός σε Python

Συχνές Ερωτήσεις

Μια κλάση είναι ένα σχέδιο που ορίζει χαρακτηριστικά και μεθόδους, ενώ ένα αντικείμενο είναι μια συγκεκριμένη παρουσία που κατασκευάζεται από αυτήν την κλάση. Μία κλάση μπορεί να δημιουργήσει πολλά αντικείμενα, κάθε ένα από τα οποία είναι βασισμένο σε ένα συγκεκριμένο αντικείμενο.ping τα δικά του δεδομένα.

Python Ο αντικειμενοστρεφής προγραμματισμός βασίζεται σε τέσσερις πυλώνες: ενθυλάκωση (ομαδοποίηση δεδομένων με μεθόδους), abstracση (απόκρυψη πολυπλοκότητας), κληρονομικότητα (επαναχρησιμοποίηση μιας βασικής κλάσης) και πολυμορφισμός (μία διεπαφή, πολλές μορφές).

Οι μεταβλητές κλάσης δηλώνονται μέσα στο σώμα της κλάσης και είναι κοινές σε κάθε instance. Οι μεταβλητές instance αντιστοιχίζονται μέσα στο __init__ χρησιμοποιώντας την self και ανήκουν μόνο σε ένα αντικείμενο.

Η συνάρτηση super() επιστρέφει έναν διακομιστή μεσολάβησης στην γονική κλάση, επιτρέποντας σε ένα παιδί να καλέσει τις γονικές μεθόδους ή τον κατασκευαστή χωρίς να το ονομάσει απευθείας. Συχνά γράφεται ως super().__init__() για την αρχικοποίηση κληρονομημένων χαρακτηριστικών.

Η ενθυλάκωση περιορίζει την άμεση πρόσβαση στα εσωτερικά δεδομένα ενός αντικειμένου. Python, προσθέστε ένα χαρακτηριστικό με μία μόνο υπογράμμιση (_name) ως προστατευμένο ή διπλή υπογράμμιση (__name) για παραμόρφωση ονόματος.

Ναί. ΕΝΑ Python Η κλάση μπορεί να κληρονομήσει από διάφορους γονείς, όπως η κλάση Child(A, B). Python Επιλύει διπλότυπα ονόματα μεθόδων χρησιμοποιώντας τη Σειρά Ανάλυσης Μεθόδων (MRO), η οποία ελέγχεται με τη μέθοδο mro().

Ο αντικειμενοστρεφής προγραμματισμός είναι κεντρικός στα πλαίσια τεχνητής νοημοσύνης και μηχανικής μάθησης. Βιβλιοθήκες όπως η PyTorΤα δίκτυα μοντέλων ch και scikit-learn, τα επίπεδα και οι εκτιμητές ως κλάσεις, επομένως τα υποκλάτε και τα επαναχρησιμοποιείτε για να δημιουργήσετε μοντέλα.

Ναι. Ο συνοδηγός του GitHub και οι βοηθοί τεχνητής νοημοσύνης δημιουργούν Python κλάσεις, κατασκευαστές και κληρονομικότητα από μια σύντομη προτροπή. Αυτοματοποιούν επαναλαμβανόμενα στερεότυπα, αν και θα πρέπει να ελέγξετε την έξοδο για σωστή λογική.

Συνοψίστε αυτήν την ανάρτηση με: