Πολυμορφισμός σε Python με ΠΑΡΑΔΕΙΓΜΑΤΑ
Τι είναι ο πολυμορφισμός;
Ο πολυμορφισμός μπορεί να οριστεί ως μια κατάσταση που εμφανίζεται με πολλές διαφορετικές μορφές. Είναι μια έννοια σε Python προγραμματισμός όπου ένα αντικείμενο ορίζεται σε Python μπορεί να χρησιμοποιηθεί με διαφορετικούς τρόπους. Επιτρέπει στον προγραμματιστή να ορίσει πολλαπλές μεθόδους σε μια παραγόμενη κλάση και έχει το ίδιο όνομα με αυτό που υπάρχει στη γονική κλάση. Τέτοια σενάρια υποστηρίζουν υπερφόρτωση μεθόδου Python.
Πολυμορφισμός σε Operaκορμοί
Ένας χειριστής μέσα Python βοηθά στην εκτέλεση μαθηματικών και πολλών άλλων προγραμματιστικών εργασιών. Για παράδειγμα, ο τελεστής '+' βοηθά στην εκτέλεση πρόσθεσης μεταξύ δύο τύπων ακεραίων Python, και με τον ίδιο τρόπο, ο ίδιος τελεστής βοηθά στη σύνδεση συμβολοσειρών Python προγραμματισμός.
Ας πάρουμε ένα παράδειγμα του + (συν) χειριστής μέσα Python για να εμφανίσετε μια εφαρμογή Πολυμορφισμού σε Python όπως φαίνεται παρακάτω:
Python Κώδικας:
p = 55 q = 77 r = 9.5 g1 = "Guru" g2 = "99!" print("the sum of two numbers",p + q) print("the data type of result is",type(p + q)) print("The sum of two numbers",q + r) print("the data type of result is", type (q + r)) print("The concatenated string is", g1 + g2) print("The data type of two strings",type(g1 + g2))
Παραγωγή:
the sum of two numbers 132 the data type of result is <class 'int'> The sum of the two numbers 86.5 the data type of result is <class 'float'> The concatenated string is Guru99! The data type of two strings <class 'str'>
Το παραπάνω παράδειγμα μπορεί επίσης να θεωρηθεί ως παράδειγμα υπερφόρτωσης χειριστή.
Πολυμορφισμός σε μεθόδους που καθορίζονται από το χρήστη
Μια μέθοδος που ορίζεται από το χρήστη στο Python Η γλώσσα προγραμματισμού είναι μέθοδοι που δημιουργεί ο χρήστης και δηλώνεται χρησιμοποιώντας τη λέξη-κλειδί def με το όνομα της συνάρτησης.
Πολυμορφισμός στο Python Η γλώσσα προγραμματισμού επιτυγχάνεται μέσω της υπερφόρτωσης και της παράκαμψης μεθόδων. Python ορίζει μεθόδους με λέξη-κλειδί def και με το ίδιο όνομα τόσο στην θυγατρική όσο και στην γονική τάξη.
Ας πάρουμε το ακόλουθο παράδειγμα όπως φαίνεται παρακάτω: –
Python Κώδικας:
from math import pi class square: def __init__(self, length): self.l = length def perimeter(self): return 4 * (self.l) def area(self): return self.l * self.l class Circle: def __init__(self, radius): self.r = radius def perimeter(self): return 2 * pi * self.r def area(self): return pi * self.r * * 2 # Initialize the classes sqr = square(10) c1 = Circle(4) print("Perimeter computed for square: ", sqr.perimeter()) print("Area computed for square: ", sqr.area()) print("Perimeter computed for Circle: ", c1.perimeter()) print("Area computed for Circle: ", c1.area())
Παραγωγή:
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
Στον παραπάνω κώδικα, υπάρχουν δύο μέθοδοι που ορίζονται από το χρήστη, η περίμετρος και η περιοχή, που ορίζονται σε κλάσεις κύκλου και τετραγώνου.
Όπως φαίνεται παραπάνω, τόσο η κλάση κύκλου όσο και η κλάση τετραγώνου επικαλούνται το ίδιο όνομα μεθόδου εμφανίζοντας τα χαρακτηριστικά του Πολυμορφισμού για να παραδώσουν την απαιτούμενη έξοδο.
Πολυμορφισμός σε Συναρτήσεις
Οι ενσωματωμένες λειτουργίες σε Python έχουν σχεδιαστεί και γίνει συμβατά για την εκτέλεση πολλών τύπων δεδομένων. Σε Python, Len()
είναι μία από τις βασικές ενσωματωμένες λειτουργίες.
Λειτουργεί σε διάφορους τύπους δεδομένων: λίστα, πλειάδα, συμβολοσειρά και λεξικό. Η συνάρτηση Len () επιστρέφει συγκεκριμένες πληροφορίες ευθυγραμμισμένες με αυτούς τους πολλούς τύπους δεδομένων.
Το παρακάτω σχήμα δείχνει πώς μπορεί να εφαρμοστεί ο Πολυμορφισμός Python σε σχέση με τις ενσωματωμένες λειτουργίες: –
Το παρακάτω πρόγραμμα βοηθά στην απεικόνιση της εφαρμογής του Πολυμορφισμού σε Python: -
Python Κώδικας:
print ("The length of string Guru99 is ",len("Guru99")) print("The length of list is ",len(["Guru99","Example","Reader"])) print("The length of dictionary is ",len({"Website name":"Guru99","Type":"Education"}))
Παραγωγή:
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
Στο παραπάνω παράδειγμα, η συνάρτηση Len () του Python εκτελεί Πολυμορφισμό για τύπους δεδομένων συμβολοσειράς, λίστας και λεξικού, αντίστοιχα.
Πολυμορφισμός και Κληρονομικότητα
Κληρονομιά σε Python μπορεί να οριστεί ως η έννοια προγραμματισμού όπου μια θυγατρική κλάση που ορίζεται κληρονομεί ιδιότητες από μια άλλη βασική κλάση που υπάρχει σε Python.
Υπάρχουν δύο κλειδιά Python έννοιες που ονομάζονται παράκαμψη μεθόδου και υπερφόρτωση μεθόδου.
- Στην υπερφόρτωση μεθόδου, Python παρέχει τη δυνατότητα δημιουργίας μεθόδων που έχουν το ίδιο όνομα για την εκτέλεση ή την εκτέλεση διαφορετικών λειτουργιών σε ένα δεδομένο κομμάτι κώδικα. Επιτρέπει την υπερφόρτωση μεθόδων και τις χρησιμοποιεί για την εκτέλεση διαφορετικών εργασιών με απλούστερους όρους.
- Στην παράκαμψη μεθόδου, Python υπερισχύει της τιμής που μοιράζεται ένα παρόμοιο όνομα σε γονικές και θυγατρικές κατηγορίες.
Ας πάρουμε το ακόλουθο παράδειγμα Πολυμορφισμού και κληρονομικότητας όπως φαίνεται παρακάτω: –
Python Κώδικας:
class baseclass: def __init__(self, name): self.name = name def area1(self): pass def __str__(self): return self.name class rectangle(baseclass): def __init__(self, length, breadth): super().__init__("rectangle") self.length = length self.breadth = breadth def area1(self): return self.length * self.breadth class triangle(baseclass): def __init__(self, height, base): super().__init__("triangle") self.height = height self.base = base def area1(self): return (self.base * self.height) / 2 a = rectangle(90, 80) b = triangle(77, 64) print("The shape is: ", b) print("The area of shape is", b.area1()) print("The shape is:", a) print("The area of shape is", a.area1())
Παραγωγή:
The shape is: a triangle The area of a shape is 2464.0 The shape is: a rectangle The area of a shape is 7200
Στον παραπάνω κώδικα, οι μέθοδοι έχουν το ίδιο όνομα που ορίζεται με τη μέθοδο init και τη μέθοδο area1. Το αντικείμενο της κλάσης τετράγωνο και ορθογώνιο χρησιμοποιούνται στη συνέχεια για την επίκληση των δύο μεθόδων για την εκτέλεση διαφορετικών εργασιών και την παροχή της εξόδου του εμβαδού του τετραγώνου και του ορθογωνίου.
Πολυμορφισμός με τις μεθόδους της τάξης
Τα Διαχωριστικά Python Ο προγραμματισμός επιτρέπει στους προγραμματιστές να επιτύχουν Πολυμορφισμό και υπερφόρτωση μεθόδων με μεθόδους κλάσης. Οι διαφορετικές τάξεις σε Python μπορεί να έχει μεθόδους που δηλώνονται με το ίδιο όνομα σε όλο το Python κώδικας.
In Python, μπορούν να οριστούν δύο διαφορετικές κατηγορίες. Το ένα θα ήταν θυγατρική κλάση και αντλεί χαρακτηριστικά από μια άλλη καθορισμένη κλάση που ονομάζεται γονική κλάση.
Το ακόλουθο παράδειγμα επεξηγεί την έννοια του Πολυμορφισμού με μεθόδους κλάσης: -
Python Κώδικας:
class amazon: def __init__(self, name, price): self.name = name self.price = price def info(self): print("This is product and am class is invoked. The name is {self.name}. This costs {self.price} rupees.") class flipkart: def __init__(self, name, price): self.name = name self.price = price def info(self): print(f "This is product and fli class is invoked. The name is {self.name}. This costs {self.price} rupees.") FLP = flipkart("Iphone", 2.5) AMZ = amazon("Iphone", 4) for product1 in (FLP, AMZ): product1.info()
Παραγωγή:
This is a product, and fli class is invoked. The name is iPhone, and this costs 2.5 rupees. This is a product, and am class is invoked. The name is iPhone, and this costs 4 rupees.
Στον παραπάνω κώδικα, δύο διαφορετικές κατηγορίες που ονομάζονται flipkart και amazon χρησιμοποιούν την ίδια μέθοδο που ονομάζει info και init για να παρέχουν αντίστοιχες τιμές τιμών του προϊόντος και να επεξηγήσουν περαιτέρω την έννοια του Πολυμορφισμού στο Python.
Διαφορά μεταξύ υπερφόρτωσης μεθόδου και πολυμορφισμού χρόνου μεταγλώττισης
Στο compile-time Polymorphism, ο μεταγλωττιστής του Python το πρόγραμμα επιλύει την κλήση. Ο πολυμορφισμός χρόνου μεταγλώττισης επιτυγχάνεται μέσω υπερφόρτωσης μεθόδου.
Τα Διαχωριστικά Python ο μεταγλωττιστής δεν επιλύει τις κλήσεις κατά τη διάρκεια του χρόνου εκτέλεσης για πολυμορφισμό. Κατατάσσεται επίσης ως παράκαμψη μεθόδου όπου οι ίδιες μέθοδοι φέρουν παρόμοιες υπογραφές ή ιδιότητες, αλλά αποτελούν μέρος διαφορετικών κλάσεων.
Σύνοψη
- Ο πολυμορφισμός μπορεί να οριστεί ως μια κατάσταση που εμφανίζεται με πολλές διαφορετικές μορφές.
- Ένας χειριστής μέσα Python βοηθά στην εκτέλεση μαθηματικών και πολλών άλλων προγραμματιστικών εργασιών.
- Μια μέθοδος που ορίζεται από το χρήστη στο Python Η γλώσσα προγραμματισμού είναι μέθοδοι που δημιουργεί ο χρήστης και δηλώνεται χρησιμοποιώντας τη λέξη-κλειδί def με το όνομα της συνάρτησης.
- Πολυμορφισμός σε Python προσφέρει πολλές επιθυμητές ιδιότητες, όπως προωθεί την επαναχρησιμοποίηση κωδικών που έχουν γραφτεί για διαφορετικές κλάσεις και μεθόδους.
- Μια θυγατρική κλάση είναι μια παραγόμενη κλάση και παίρνει τα χαρακτηριστικά της από τη γονική κλάση.
- Ο Πολυμορφισμός επιτυγχάνεται επίσης μέσω της παράκαμψης της μεθόδου χρόνου εκτέλεσης και της υπερφόρτωσης της μεθόδου μεταγλώττισης.
- Πολυμορφισμός σε Python επιτυγχάνεται επίσης μέσω της υπερφόρτωσης χειριστή και των μεθόδων κλάσης.