python oops concepts python classes
Έννοιες OOPs στο Python: Κατηγορίες και αντικείμενα Python, κληρονομικότητα, υπερφόρτωση, υπερισχύουσα και απόκρυψη δεδομένων
Στο προηγούμενο σεμινάριο έχουμε μερικά από τα Λειτουργίες εισόδου / εξόδου που παρέχει η Python.
Γνωρίσαμε πώς να χρησιμοποιήσουμε αυτές τις λειτουργίες για να διαβάσουμε τα δεδομένα από τον χρήστη ή από τις εξωτερικές πηγές και επίσης πώς να γράψουμε αυτά τα δεδομένα σε εξωτερικές πηγές. Επίσης, μάθαμε πώς να διαιρούμε έναν τεράστιο κώδικα σε μικρότερες μεθόδους χρησιμοποιώντας συναρτήσεις και πώς να καλούμε ή να αποκτήσουμε πρόσβαση σε αυτές.
Περαιτέρω ανάγνωση => Εκφραστική σειρά δωρεάν εκπαιδευτικών εκπαιδευτικών προγραμμάτων Python
Σε αυτό το σεμινάριο, θα συζητήσουμε την ιδέα Advanced Python που ονομάζεται OOPs και διαφορετικούς τύπους εννοιών oops που είναι διαθέσιμες στο Python και πώς και πού να τις χρησιμοποιήσουμε.
Τι θα μάθετε:
- Παρακολουθήστε τα VIDEO Tutorials
- Μαθήματα και αντικείμενα
- Κατασκευαστής στην Python
- Κληρονομία
- Μέθοδος υπερφόρτωσης στο Python
- Παράκαμψη μεθόδου στο Python
- Απόκρυψη δεδομένων στο Python
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Παρακολουθήστε τα VIDEO Tutorials
Βίντεο # 1: Τάξη, Αντικείμενα & Κατασκευαστής στο Python
Βίντεο # 2: Έννοια της κληρονομικότητας στο Python
Βίντεο # 3: Υπερφόρτωση, παράκαμψη & απόκρυψη δεδομένων στο Python
Μαθήματα και αντικείμενα
- Η Python είναι μια αντικειμενοστρεφής γλώσσα προγραμματισμού όπου ο προγραμματισμός τονίζει περισσότερο τα αντικείμενα.
- Σχεδόν τα πάντα στην Python είναι αντικείμενα.
Μαθήματα
Η τάξη στο Python είναι μια συλλογή αντικειμένων, μπορούμε να θεωρήσουμε μια τάξη ως σχέδιο ή σκίτσο ή πρωτότυπο. Περιέχει όλες τις λεπτομέρειες ενός αντικειμένου.
Στο παράδειγμα του πραγματικού κόσμου, το Animal είναι μια τάξη, επειδή έχουμε διαφορετικά είδη ζώων στον κόσμο και όλα αυτά ανήκουν σε μια τάξη που ονομάζεται Animal.
Ορισμός τάξης
Στο Python, πρέπει να ορίσουμε μια κλάση χρησιμοποιώντας τη λέξη-κλειδί «class».
Σύνταξη:
class classname: #Collection of statements or functions or classes
Παράδειγμα:
class MyClass: a = 10 b = 20 def add(): sum = a+b print(sum)
Στο παραπάνω παράδειγμα, έχουμε δηλώσει την τάξη που ονομάζεται «Myclass» και έχουμε δηλώσει και ορίσει ορισμένες μεταβλητές και συναρτήσεις αντίστοιχα.
Για να αποκτήσετε πρόσβαση σε αυτές τις συναρτήσεις ή μεταβλητές που υπάρχουν μέσα στην τάξη, μπορούμε να χρησιμοποιήσουμε το όνομα της τάξης δημιουργώντας ένα αντικείμενο αυτής.
Αρχικά, ας δούμε πώς να αποκτήσετε πρόσβαση σε αυτούς που χρησιμοποιούν το όνομα της τάξης.
Παράδειγμα:
class MyClass: a = 10 b = 20 #Accessing variable present inside MyClass print(MyClass.a)
Παραγωγή
10
Παραγωγή:
Αντικείμενα
Ένα αντικείμενο είναι συνήθως μια παρουσία μιας κλάσης. Χρησιμοποιείται για πρόσβαση σε ό, τι υπάρχει μέσα στην τάξη.
Δημιουργία αντικειμένου
Σύνταξη:
variablename = classname
Παράδειγμα:
ob = MyClass()
Αυτό θα δημιουργήσει ένα νέο αντικείμενο παρουσίας που ονομάζεται «ob». Χρησιμοποιώντας αυτό το όνομα αντικειμένου μπορούμε να έχουμε πρόσβαση σε όλα τα χαρακτηριστικά που υπάρχουν μέσα στην κλάση MyClass.
Παράδειγμα:
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()
Παραγωγή:
10
είκοσι
30
Παραγωγή:
Κατασκευαστής στην Python
Ο κατασκευαστής στο Python είναι μια ειδική μέθοδος που χρησιμοποιείται για την προετοιμασία των μελών μιας κλάσης κατά τη διάρκεια του χρόνου εκτέλεσης όταν δημιουργείται ένα αντικείμενο.
Στο Python, έχουμε κάποιες ειδικές ενσωματωμένες μεθόδους κατηγορίας που ξεκινούν με διπλό υπογράμμιση (__) και έχουν ιδιαίτερο νόημα στην Python.
Το όνομα του κατασκευαστή θα είναι πάντα __init __ ().
Κάθε τάξη πρέπει να έχει έναν κατασκευαστή, ακόμα κι αν δεν δημιουργείτε έναν κατασκευαστή ρητά, θα δημιουργήσει από μόνο του έναν προεπιλεγμένο κατασκευαστή.
Παράδειγμα:
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()
Παραγωγή:
Το άθροισμα των α και β είναι: 27
Παραγωγή:
οι καλύτεροι ιστότοποι anime για να παρακολουθήσετε το anime
Εάν παρατηρήσουμε στο παραπάνω παράδειγμα, δεν καλούμε τη μέθοδο __init __ (), επειδή θα καλείται αυτόματα όταν δημιουργούμε ένα αντικείμενο σε αυτήν την κλάση και αρχικοποιούμε τα μέλη δεδομένων εάν υπάρχουν.
Να θυμάστε πάντα ότι ένας κατασκευαστής δεν θα επιστρέψει ποτέ καμία τιμή, επομένως δεν περιέχει δηλώσεις επιστροφής.
Κληρονομία
Η κληρονομικότητα είναι μια από τις πιο ισχυρές έννοιες των OOP.
Μια κλάση που κληρονομεί τις ιδιότητες μιας άλλης τάξης ονομάζεται κληρονομικότητα.
Η κλάση που κληρονομεί τις ιδιότητες ονομάζεται θυγατρική κλάση / υποκατηγορία και η κλάση από την οποία κληρονομούνται ιδιότητες ονομάζεται κλάση γονέα / βασική
Η Python παρέχει τρεις τύπους κληρονομικότητας:
- Ενιαία κληρονομικότητα
- Πολυεπίπεδη κληρονομικότητα
- Πολλαπλή κληρονομικότητα
Συνιστώμενη ανάγνωση = >> Κληρονομικότητα στην Ιάβα
# 1) Ενιαία κληρονομικότητα
Στην Ενιαία κληρονομιά, μία τάξη θα κληρονομήσει τις ιδιότητες μίας τάξης μόνο.
Παράδειγμα:
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()
Παραγωγή:
Το άθροισμα των α και β είναι: 30
Η αφαίρεση των c και d είναι: 40
Παραγωγή:
Στο παραπάνω παράδειγμα, κληρονομούμε τις ιδιότητες της κλάσης «Λειτουργίες» στην τάξη «MyClass».
Ως εκ τούτου, μπορούμε να έχουμε πρόσβαση σε όλες τις μεθόδους ή τις δηλώσεις που υπάρχουν στην τάξη «Λειτουργίες» χρησιμοποιώντας τα αντικείμενα MyClass.
# 2) Πολυεπίπεδη κληρονομικότητα
Στην πολυεπίπεδη κληρονομικότητα, μία ή περισσότερες τάξεις λειτουργούν ως βασική τάξη.
Αυτό σημαίνει ότι η δεύτερη τάξη θα κληρονομήσει τις ιδιότητες της πρώτης τάξης και η τρίτη τάξη θα κληρονομήσει τις ιδιότητες της δεύτερης τάξης. Έτσι, η δεύτερη τάξη θα λειτουργήσει τόσο ως τάξη γονέων όσο και ως τάξη παιδιού.
Παράδειγμα:
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()
Παραγωγή:
Το άθροισμα των α και β είναι: 30
Η αφαίρεση των α και β είναι: 10
Ο πολλαπλασιασμός των a και b είναι: 200
Παραγωγή:
Στο παραπάνω παράδειγμα, η κλάση «Αφαίρεση» κληρονομεί τις ιδιότητες της κλάσης «Προσθήκη» και η κατηγορία «Πολλαπλασιασμός» θα κληρονομήσει τις ιδιότητες της κλάσης «Αφαίρεση». Έτσι, η κλάση «Αφαίρεση» θα λειτουργήσει τόσο ως βασική όσο και ως παράγωγη κατηγορία.
# 3) Πολλαπλή κληρονομικότητα
Η κλάση που κληρονομεί τις ιδιότητες πολλαπλών τάξεων ονομάζεται Πολλαπλή Κληρονομικότητα.
Περαιτέρω ανάγνωση = >> Υποστηρίζει η Java Πολλαπλή Κληρονομικότητα;
Παράδειγμα:
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()
Παραγωγή:
Το άθροισμα των α και β είναι: 30
Η αφαίρεση των c και d είναι: 10
Ο πολλαπλασιασμός των a και c είναι: 500
Παραγωγή:
Μέθοδος υπερφόρτωσης στο Python
Πολλαπλές μέθοδοι με το ίδιο όνομα αλλά με διαφορετικό τύπο παραμέτρου ή διαφορετικό αριθμό παραμέτρων ονομάζεται μέθοδος υπερφόρτωσης
Παράδειγμα:
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)
Παραγωγή:
30
Παραγωγή:
Παραγωγή:
Η μέθοδος υπερφόρτωσης δεν υποστηρίζεται στο Python, γιατί αν δούμε στο παραπάνω παράδειγμα έχουμε ορίσει δύο συναρτήσεις με το ίδιο όνομα «προϊόν» αλλά με διαφορετικό αριθμό παραμέτρων.
Αλλά στην Python, το πιο πρόσφατο καθορισμένο θα ενημερωθεί, επομένως το προϊόν λειτουργίας (a, b) θα γίνει άχρηστο.
Παράκαμψη μεθόδου στο Python
Εάν μια μέθοδος υποκατηγορίας έχει το ίδιο όνομα που δηλώνεται στη μέθοδο του superclass, τότε ονομάζεται παράκαμψη μεθόδου
Για να επιτύχουμε την παράκαμψη της μεθόδου πρέπει να χρησιμοποιήσουμε την κληρονομιά.
Παράδειγμα:
class A: def sayHi(): print(“I am in A”) class B(A): def sayHi(): print(“I am in B”) ob = B() ob.sayHi()
Παραγωγή:
Είμαι στο Β
Παραγωγή:
Απόκρυψη δεδομένων στο Python
Η απόκρυψη δεδομένων σημαίνει ότι τα δεδομένα είναι ιδιωτικά, ώστε να μην είναι προσβάσιμα στα άλλα μέλη της τάξης. Είναι προσβάσιμο μόνο στην τάξη όπου δηλώνεται.
Στο python, εάν θέλουμε να αποκρύψουμε τη μεταβλητή, τότε πρέπει να γράψουμε διπλή υπογράμμιση (__) πριν από το όνομα της μεταβλητής.
Παράδειγμα:
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
Παραγωγή:
30
Traceback (πιο πρόσφατη τελευταία κλήση):
Αρχείο 'DataHiding.py', γραμμή 10, σε
εκτύπωση (αν οφείλεται .__)
AttributeError: Η παρουσία MyClass έχει
χωρίς χαρακτηριστικό «__num
Παραγωγή:
συμπέρασμα
Η κλάση είναι ένα σχεδιάγραμμα ή πρότυπο που περιέχει όλες τις λεπτομέρειες ενός αντικειμένου, όπου το αντικείμενο είναι μια παρουσία μιας κλάσης.
- Αν θέλουμε να μεταφέρουμε τις ιδιότητες μιας άλλης τάξης σε μια τάξη, τότε αυτό μπορεί να επιτευχθεί με κληρονομιά.
- Το κληρονομικό είναι 3 τύπων - Ενιαία κληρονομιά, Πολυεπίπεδη κληρονομικότητα και Πολλαπλή κληρονομικότητα.
- Η μέθοδος υπερφόρτωσης δεν υποστηρίζεται στο Python.
- Η μέθοδος παράκαμψης χρησιμοποιείται για να παρακάμψει την εφαρμογή της ίδιας συνάρτησης που ορίζεται σε άλλη κλάση.
- Μπορούμε να κάνουμε τα χαρακτηριστικά δεδομένων ως ιδιωτικά ή να τα αποκρύψουμε έτσι ώστε να μην είναι προσβάσιμα εκτός της κλάσης όπου ορίζεται.
Το επερχόμενο σεμινάριό μας θα εξηγήσει περισσότερα σχετικά με τις έννοιες του πρόσθετου Python !!
Εκπαιδευτικό πρόγραμμα PREV | ΕΠΟΜΕΝΟ Φροντιστήριο
Συνιστώμενη ανάγνωση
- Μεταβλητές Python
- Εκμάθηση Python DateTime με παραδείγματα
- Λειτουργίες συμβολοσειράς Python
- Εκμάθηση Python για αρχάριους (ΔΩΡΕΑΝ Εκπαίδευση Python)
- Δηλώσεις ελέγχου Python (Συνέχεια Python, Break και Pass)
- Χειριστές Python
- Λειτουργίες Python
- Διαδικασία εισαγωγής και εγκατάστασης Python