Πίνακας περιεχομένων[Κρύβω][Προβολή]
Μεταξύ των προγραμματιστών, ο αντικειμενοστραφής προγραμματισμός έχει προσελκύσει αρκετούς ακόλουθους. Η δημοφιλής γλώσσα υπολογιστών Η Python ακολουθεί επίσης το αντικειμενοστραφή παράδειγμα.
Ασχολείται με τον ορισμό αντικειμένων και κλάσεων στην Python, η οποία αποτελεί τη βάση για τις αρχές OOPs. Σε αυτό το σεμινάριο σχετικά με τον «αντικειμενοστραφή προγραμματισμό στην Python», θα μάθετε πώς να δηλώνετε κλάσεις Python, να δημιουργείτε αντικείμενα από αυτές και να χρησιμοποιείτε τις τέσσερις τεχνικές OOPs.
Λοιπόν, πρώτα πρώτα.
Τι είναι ο αντικειμενοστρεφής προγραμματισμός;
Ο κύριος στόχος του αντικειμενοστρεφούς προγραμματισμού (OOP) είναι η δημιουργία «αντικειμένων». Μια συλλογή διασυνδεδεμένων μεταβλητών και συναρτήσεων συνθέτει ένα αντικείμενο.
Αυτές οι μεταβλητές αναφέρονται συχνά ως χαρακτηριστικά του αντικειμένου και οι συμπεριφορές του αναφέρονται συχνά ως συναρτήσεις του. Αυτά τα στοιχεία παρέχουν στην εφαρμογή μια πιο αποτελεσματική και κατανοητή δομή. Ένα αυτοκίνητο είναι ένα παράδειγμα αντικειμένου.
Εάν το αυτοκίνητο ήταν ένα αντικείμενο, τα χαρακτηριστικά του θα περιελάμβαναν πράγματα όπως το χρώμα, το μοντέλο, την τιμή, τη μάρκα κ.λπ. Επιπλέον, θα επιτάχυνε, θα επιβράδυνε και θα άλλαζε ταχύτητα.
Μια άλλη απεικόνιση: Αν σκεφτούμε έναν σκύλο ως αντικείμενο, τότε μερικά από τα χαρακτηριστικά του μπορεί να είναι το χρώμα, η φυλή, το όνομα, το βάρος κ.λπ. Και θα κυκλοφορούσε, θα γαβγίζει, θα παίζει κ.λπ.
Επειδή ενσωματώνει έννοιες του πραγματικού κόσμου όπως αντικείμενα, απόκρυψη, κληρονομικότητα κ.λπ. στον προγραμματισμό, ο αντικειμενοστραφής προγραμματισμός είναι πολύ γνωστός. Επειδή είναι τόσο παρόμοια με τις πραγματικές συνθήκες, η οπτικοποίηση γίνεται πιο απλή.
Αντικειμενοστραφής Προγραμματισμός Έννοιες
Κλάσεις & Αντικείμενα στην Python
Όπως όλες οι άλλες αντικειμενοστρεφείς γλώσσες, η Python σάς δίνει τη δυνατότητα να σχεδιάζετε κλάσεις για τη δημιουργία αντικειμένων. Οι πιο δημοφιλείς τύποι δεδομένων στην Python, συμπεριλαμβανομένων συμβολοσειρών, λιστών, λεξικών και άλλων αντικειμένων, είναι ενσωματωμένες κλάσεις.
Μια κλάση είναι μια ομάδα συνδεδεμένων μεθόδων και μεταβλητών στιγμιότυπου που ορίζουν ένα συγκεκριμένο είδος αντικειμένου. Μια κλάση μπορεί να θεωρηθεί ως το μοντέλο ή το πρότυπο για ένα αντικείμενο. Οι μεταβλητές που απαρτίζουν μια κλάση είναι γνωστές ως ιδιότητες.
Ένα αντικείμενο είναι ένα μέλος μιας κλάσης που έχει ένα καθορισμένο σύνολο χαρακτηριστικών. Εξαιτίας αυτού, οποιοσδήποτε αριθμός αντικειμένων μπορεί να δημιουργηθεί χρησιμοποιώντας την ίδια κλάση.
Οι κλάσεις Python ορίζονται χρησιμοποιώντας τη λέξη class, η οποία στη συνέχεια ακολουθείται από το όνομα της κλάσης και μια άνω και κάτω τελεία. Μια απεικόνιση μιας τάξης παπαγάλων μπορεί να είναι:
Εδώ, δηλώνουμε την κενή κλάση Parrot χρησιμοποιώντας τη λέξη-κλειδί κλάσης. Δημιουργούμε στιγμιότυπα από τάξεις. Ένα παράδειγμα είναι ένα συγκεκριμένο αντικείμενο που δημιουργήθηκε από μια συγκεκριμένη κλάση. Το "pass" χρησιμοποιείται συχνά ως stand-in για κώδικα του οποίου η εφαρμογή μπορεί να παραιτηθεί προς το παρόν. Μπορούμε να εκτελέσουμε τον κώδικα Python χωρίς να δημιουργήσουμε σφάλμα χρησιμοποιώντας τη λέξη-κλειδί «pass».
Ένα στιγμιότυπο μιας κλάσης καταλήγει σε ένα αντικείμενο (στιγμιότυπο). Μόνο η περιγραφή του αντικειμένου ορίζεται όταν δημιουργείται μια κλάση. Ως αποτέλεσμα, δεν εκχωρείται χώρος αποθήκευσης ή μνήμη RAM.
Ένα παράδειγμα αντικειμένου κλάσης παπαγάλου είναι:
Το Obj είναι ένα αντικείμενο κατηγορίας Parrot σε αυτήν την περίπτωση.
Ας πούμε ότι γνωρίζουμε λεπτομέρειες για τους παπαγάλους. Τώρα θα δείξουμε πώς να δημιουργήσουμε την κλάση παπαγάλου και τα αντικείμενά της.
Ειδική μέθοδος ( __init__ )
Μια μέθοδος που ονομάζεται init ορίζει τα χαρακτηριστικά που πρέπει να έχει κάθε αντικείμενο Parrot (). Όταν σχηματίζεται ένα νέο αντικείμενο Parrot, η συνάρτηση __init__ δημιουργεί την αρχική κατάσταση του αντικειμένου εκχωρώντας τις τιμές που παρέχουμε στις ιδιότητες του αντικειμένου.
Έτσι, κάθε νέο στιγμιότυπο της κλάσης αρχικοποιείται χρησιμοποιώντας __init__(). Αν και η __init__() μπορεί να δεχτεί οποιονδήποτε αριθμό παραμέτρων, ο εαυτός είναι πάντα η πρώτη παράμετρος.
Μια αναφορά στην παρουσία της ενεργής τάξης περιλαμβάνεται στον αυτοεπιχείρημα. Η παράμετρος self, η οποία συνδέεται με τη διεύθυνση του τρέχοντος αντικειμένου μιας κλάσης και μας δίνει πρόσβαση στα δεδομένα των μεταβλητών του (του αντικειμένου), το υποδηλώνει.
Παράδειγμα 1
Δημιουργήσαμε μια τάξη που ονομάζεται Parrot στον παραπάνω κώδικα. Στη συνέχεια, ορίζονται οι ιδιότητες. Τα χαρακτηριστικά ενός πράγματος είναι οι ιδιότητές του. Η συνάρτηση __init__ της κλάσης είναι εκεί που καθορίζονται αυτά τα χαρακτηριστικά.
Όταν σχηματίζεται ένα αντικείμενο, η μέθοδος αρχικοποιητή είναι αυτή που καλείται αρχικά. Στη συνέχεια, δημιουργούνται στιγμιότυπα της κλάσης Parrot. Ο Blaze και ο Wonda σε αυτήν την περίπτωση είναι αναφορές (αξίες) στα νέα μας αντικείμενα. Το __class .species μας επιτρέπει να έχουμε πρόσβαση στο χαρακτηριστικό class.
Κάθε παράδειγμα μιας κλάσης έχει τα ίδια χαρακτηριστικά. Μπορείτε επίσης να προσπελάσετε τα χαρακτηριστικά της παρουσίας χρησιμοποιώντας το blaze.name και το blaze.age. Ωστόσο, όλες οι παρουσίες μιας κλάσης έχουν μοναδικά χαρακτηριστικά στιγμιότυπων.
Παράδειγμα 2
Μέθοδοι
Οι συναρτήσεις που ορίζονται μέσα στο σώμα μιας κλάσης ονομάζονται μέθοδοι. Χρησιμοποιούνται για να καθορίσουν πώς θα συμπεριφέρεται ένα αντικείμενο.
Δύο μέθοδοι, το sing() και το dance, ορίζονται στην προαναφερθείσα εφαρμογή (). Επειδή καλούνται σε ένα αντικείμενο παρουσίας, όπως η φλόγα, αναφέρονται ως μέθοδοι στιγμιότυπου.
Βασικές αρχές της έννοιας OOPS
Οι τέσσερις βασικές ιδέες του αντικειμενοστρεφούς προγραμματισμού είναι:
- Κληρονομία
- Ενθυλάκωση
- Πολυμορφισμός
- Αφαίρεση
Κληρονομία
Οι άνθρωποι λένε συχνά στα νεογέννητα ότι έχουν χαρακτηριστικά προσώπου που μοιάζουν με εκείνα των γονιών τους ή ότι έχουν κληρονομήσει συγκεκριμένα χαρακτηριστικά από τους γονείς τους.
Είναι πιθανό να έχετε επίσης παρατηρήσει ότι μοιράζεστε μερικά χαρακτηριστικά με τους γονείς σας. Η κατάσταση στον πραγματικό κόσμο είναι επίσης παρόμοια με την κληρονομικότητα.
Ωστόσο, σε αυτή την περίπτωση, τα χαρακτηριστικά των «γονικών τάξεων» μεταβιβάζονται στις «τάξεις παιδιών». Αυτές οι πτυχές αναφέρονται ως «ιδιότητες» και «μέθοδοι» σε αυτό το πλαίσιο.
Μια κλάση μπορεί να αντλήσει τις μεθόδους και τα χαρακτηριστικά της από μια άλλη κλάση χρησιμοποιώντας την τεχνική που είναι γνωστή ως κληρονομικότητα. Η κληρονομικότητα είναι η διαδικασία μιας θυγατρικής κλάσης που λαμβάνει τις ιδιότητες μιας γονικής κλάσης.
Παράδειγμα:
Η γονική κλάση Human κληρονομείται από την τάξη παιδιού Boy στο παραπάνω παράδειγμα. Επειδή το Boy κληρονομεί από το Human, μπορούμε να έχουμε πρόσβαση σε όλες τις μεθόδους και τα χαρακτηριστικά του όταν δημιουργούμε μια παρουσία της κλάσης Boy.
Στην τάξη Boy, έχει επίσης οριστεί μια μέθοδος που ονομάζεται schoolName. Το αντικείμενο γονικής κλάσης δεν έχει πρόσβαση στη μέθοδο schoolName. Η μέθοδος schoolName μπορεί, ωστόσο, να κληθεί δημιουργώντας ένα αντικείμενο θυγατρικής τάξης (Boy).
Ενθυλάκωση
Η παροχή καθολικής πρόσβασης σε κάθε μεταβλητή του προγράμματος δεν είναι σοφή κίνηση όταν εργάζεστε με κλάσεις και χειρίζεστε ευαίσθητα δεδομένα.
Χωρίς να δίνει στο πρόγραμμα πλήρη πρόσβαση σε καμία από αυτές τις μεταβλητές, η ενθυλάκωση παρέχει έναν μηχανισμό για να αποκτήσουμε τις απαραίτητες μεταβλητές.
Μέθοδοι που ορίζονται ρητά για το σκοπό αυτό μπορούν να χρησιμοποιηθούν για ενημέρωση, επεξεργασία ή διαγραφή δεδομένων από μεταβλητές. Αυτή η μέθοδος προγραμματισμού έχει τα πλεονεκτήματα της ενισχυμένης ασφάλειας και ελέγχου της εισαγωγής δεδομένων.
Δείτε πόσο γρήγορα είναι προσβάσιμες οι μεταβλητές στην παρακάτω επίδειξη:
Πολυμορφισμός
Ας υποθέσουμε ότι χρησιμοποιείτε το τηλέφωνό σας για να περιηγηθείτε στο Τροφοδοσίες Instagram. Όταν σας ώθησε να ακούσετε λίγη μουσική, μπήκατε στο Spotify και αρχίσατε να παίζετε το αγαπημένο σας τραγούδι.
Μετά από λίγο, λάβατε μια κλήση, οπότε σταματήσατε ό,τι κάνατε στο παρασκήνιο για να απαντήσετε. Ο φίλος σας τηλεφώνησε και ζήτησε να του στείλετε μήνυμα στον αριθμό τηλεφώνου ενός συγκεκριμένου ατόμου.
Έτσι του στείλατε τον αριθμό τηλεφώνου μέσω SMS και συνεχίσατε τις εργασίες σας. Έχεις πάρει κάτι; Με μία μόνο συσκευή —το κινητό σας τηλέφωνο— μπορείτε να σερφάρετε σε ροές δεδομένων, να ακούτε μουσική, να λαμβάνετε και να πραγματοποιείτε τηλεφωνικές κλήσεις και να στέλνετε μηνύματα.
Επομένως, ο πολυμορφισμός είναι συγκρίσιμος με αυτόν. Πολύ σημαίνει πολυάριθμες και η μορφολογία υποδηλώνει διαφορετικές μορφές. Επομένως, ο πολυμορφισμός στο σύνολό του αναφέρεται σε κάτι με διάφορες μορφές.
Ή «κάτι» που, ανάλογα με την περίσταση, μπορεί να παρουσιάσει ποικίλες συμπεριφορές. Στο OOPS, ο πολυμορφισμός περιγράφει συναρτήσεις με τα ίδια ονόματα αλλά διακριτές συμπεριφορές. Εναλλακτικά, μια διαφορετική υπογραφή συνάρτησης με το ίδιο όνομα συνάρτησης (οι παράμετροι μεταβιβάζονται στη συνάρτηση).
Παράδειγμα:
Εδώ, μπορούμε να χρησιμοποιήσουμε τη μεταβλητή ζώο για να επαναλάβουμε τα αντικείμενα της Ζέβρας και του Κουνελιού, χρησιμοποιώντας τις αντίστοιχες μεθόδους παράδειγμα τους. Ως αποτέλεσμα, η συμπεριφορά (color() & eats()) τόσο της Ζέβρας όσο και του Κουνελιού αντιπροσωπεύεται εδώ από μια ενιαία μεταβλητή που ονομάζεται ζώο. Επομένως, τηρεί τους κανόνες του πολυμορφισμού.
Αφαίρεση
Πιθανότατα χρησιμοποιείτε φορητό υπολογιστή, τηλέφωνο ή tablet για να διαβάσετε αυτό το περιεχόμενο. Κατά την ανάγνωση, πιθανότατα κρατάτε επίσης σημειώσεις, υπογραμμίζετε βασικά αποσπάσματα και ίσως αποθηκεύετε κάποιες πληροφορίες στα προσωπικά σας αρχεία.
Το μόνο που μπορείτε να δείτε όταν διαβάζετε αυτό είναι μια "οθόνη" με τα δεδομένα που σας εμφανίζονται. Απλώς βλέπετε τα πλήκτρα του πληκτρολογίου καθώς πληκτρολογείτε, επομένως δεν χρειάζεται να ανησυχείτε για εσωτερικές λεπτές αποχρώσεις, όπως το πώς το πάτημα ενός πλήκτρου μπορεί να προκαλέσει την εμφάνιση αυτής της λέξης στην οθόνη.
Εναλλακτικά, πώς το πάτημα ενός κουμπιού στην οθόνη σας μπορεί να ξεκινήσει μια νέα καρτέλα.
Επομένως, ό,τι μπορούμε να παρατηρήσουμε σε αυτή την κατάσταση είναι αφηρημένο. Μπορούμε να δούμε μόνο το αποτέλεσμα που δημιουργεί και όχι τις εσωτερικές περιπλοκές (που πραγματικά έχουν σημασία για εμάς).
Παρόμοια με αυτό, η αφαίρεση αποκαλύπτει μόνο τις λειτουργίες που διαθέτουν τα πάντα, ενώ συγκαλύπτει τυχόν υλοποιήσεις ή εσωτερικές λεπτομέρειες.
Ο κύριος στόχος του Abstraction είναι η απόκρυψη πληροφοριών παρασκηνίου και οποιασδήποτε εξωτερικής εφαρμογής δεδομένων, έτσι ώστε οι άνθρωποι να βλέπουν μόνο αυτό που χρειάζονται να δουν. Βοηθά στη διαχείριση της πολυπλοκότητας του κώδικα.
Παράδειγμα:
Μια αφηρημένη κατηγορία που σχετίζεται με το όχημα είναι παρούσα εδώ. Επειδή κληρονομεί από την αφηρημένη κλάση ABC, είναι αφηρημένη. Επειδή οι αφηρημένες μέθοδοι δεν ορίζονται ή παραμένουν κενές, η κλάση Vehicle έχει μια αφηρημένη μέθοδο που ονομάζεται no of wheels και δεν έχει ορισμό.
Προβλέπουν τις κλάσεις που κληρονομούν τις αφηρημένες κλάσεις για να δώσουν την υλοποίηση της μεθόδου.
Πλεονεκτήματα των εννοιών OOPS
- Με την ενθυλάκωση επιτυγχάνεται υψηλή ασφάλεια και απόρρητο δεδομένων.
- Ευελιξία στην ύπαρξη πολλών πολυμορφικών εκδόσεων της ίδιας κατηγορίας.
- Το υψηλό επίπεδο πολυπλοκότητας κώδικα μειώθηκε από την αφαίρεση.
- Αντί να ψάξετε σε εκατοντάδες γραμμές κώδικα για να εντοπίσετε ένα μεμονωμένο πρόβλημα, η αρθρωτότητα του προγραμματισμού κάνει την αποσφαλμάτωση απλή.
- Η επαναχρησιμοποίηση κώδικα προκαλείται από την κληρονομικότητα ιδιοτήτων γονικής κλάσης από μια θυγατρική τάξη.
- Η αποτελεσματική επίλυση προβλημάτων είναι δυνατή επειδή δημιουργούμε τάξεις που κάνουν τις απαραίτητες ενέργειες για κάθε μίνι πρόβλημα. Το παρακάτω πρόβλημα μπορεί να λυθεί ακόμα πιο γρήγορα αφού μπορούμε να χρησιμοποιήσουμε ξανά αυτές τις κλάσεις.
Συμπέρασμα
Συμπερασματικά, μάθαμε για τις ιδέες OOPS στην Python, το πιο καυτό παράδειγμα προγραμματισμού αυτή τη στιγμή.
Αφού διαβάσατε αυτό, πρέπει να έχετε συνειδητοποιήσει ότι το παράδειγμα OOPS ασχολείται εξ ολοκλήρου με την ιδέα των κλάσεων και των αντικειμένων. και έννοιες OOPS όπως η ενθυλάκωση, ο πολυμορφισμός, η κληρονομικότητα και η αφαίρεση.
Αφήστε μια απάντηση