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

Βασικά κατηγορίας Python

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

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

Διαβάστε περισσότερα: Μέθοδοι τάξης στο Python: Οι σημαντικές διαφορές

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

instagram viewer

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

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

Παράδειγμα κλάσης (Κατηγορία αυτοκινήτου)


αυτοκίνητο κατηγορίας:
#Κατασκευαστής
Η μέθοδος #itit είναι υπεύθυνη για την αρχικοποίηση των τιμών της παρουσίας # μεταβλητές στην τάξη.
def __init __ (αυτο, όνομα_ αυτοκινήτου, όνομα_προγράμματος_δίσκου, αριθμός_άριθμου_δίσκου,
current_speed, speeding_charge, color):
self.car_name = όνομα_ αυτοκινήτου
self._driver_name = όνομα_προγράμματος
self._license_plate_number = license_plate_number
self._current_speed = τρέχουσα_ ταχύτητα
self._speeding_charge = speeding_charge
self._colour = χρώμα
# Μέθοδοι πρόσβασης
Η μέθοδος get_car_name επιστρέφει το όνομα του αυτοκινήτου
def get_car_name (αυτο):
επιστροφή self._car_name
Η μέθοδος get_driver_name επιστρέφει το όνομα του προγράμματος οδήγησης
def get_driver_name (αυτο):
επιστροφή self._driver_name
Η μέθοδος # get_license_plate επιστρέφει την πινακίδα κυκλοφορίας του αυτοκινήτου
def get_license_plate (αυτο):
επιστροφή self._license_plate
Η μέθοδος get_current_speed επιστρέφει την τρέχουσα ταχύτητα με την οποία το αυτοκίνητο κινείται
def get_current_speed (αυτο):
επιστροφή self._current_speed
Η μέθοδος get_speeding_charge επιστρέφει το συνολικό χρηματικό ποσό που
Το #driver πρέπει να πληρώσει για υπερβολική ταχύτητα
def get_speeding_charge (αυτο):
επιστροφή self._speeding_charge
Η μέθοδος get_colour επιστρέφει το χρώμα της γλυκιάς μας διαδρομής!
def get_colour (μόνος):
επιστρέψτε τον εαυτό σας
Μέθοδοι #Mutator
#Η τιμή set_driver αλλάζει τον οδηγό του αυτοκινήτου μας.
def set_driver (self, new_driver):
self._driver_name = νέο_driver
# Η μέθοδος speeding_ticket διασφαλίζει ότι ο οδηγός χρεώνεται 50 δολάρια όταν # πιάστηκε με ταχύτητα άνω των 140 μιλίων ανά ώρα :(
def speeding_ticket (self, current_speed):
εάν τρέχουσα_ ταχύτητα <= 140:
επιστροφή False
αλλού:
self._speeding_charge + = 50
επιστροφή Αληθινή
# Η μέθοδος make_payment διασφαλίζει ότι ο οδηγός είναι σε θέση να πληρώσει για όλο το ποσό που οφείλει για την επιτάχυνση των χρεώσεων εισιτηρίων.
def make_payment (αυτο, ποσό_πληρωμή):
self._speeding_charge - = ποσό_πληρωμένο

Μια επεξήγηση του παραδείγματος κλάσης Python

Η παράμετρος "Self"

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

Ωστόσο, όταν ο προγραμματιστής καλεί αυτή τη μέθοδο σε μια παρουσία της τάξης, δεν παρέχει παραμέτρους. Αυτό το ίδιο φαινόμενο μπορεί να παρατηρηθεί στη μέθοδο speeding_ticket που ορίζεται ότι λαμβάνει δύο παραμέτρους στην τάξη (δηλ. και current_speed), αλλά ο προγραμματιστής είναι σε θέση να εκτελέσει αυτήν τη μέθοδο παρέχοντας την τιμή μόνο για το "current_speed" παράμετρος.

Αυτό συμβαίνει επειδή ο σκοπός της παραμέτρου «αυτο» που παρέχεται είναι να συνδέσει τη μέθοδο με την παρουσία αντικειμένου στην οποία κλήθηκε και δεν είναι τιμή που πρέπει να δοθεί από τον προγραμματιστή.

Ο Κατασκευαστής

Ο Κατασκευαστής μιας κλάσης αναφέρεται στη μέθοδο της κλάσης που μπορεί να καλέσει ένας χρήστης για να δημιουργήσει μια παρουσία αντικειμένου αυτής της κλάσης. Στην κλάση αυτοκινήτου, ο χρήστης μπορεί να δημιουργήσει μια παρουσία αντικειμένου χρησιμοποιώντας την ακόλουθη σύνταξη:

# δημιουργώντας το δικό μας Bugatti :)
Αυτοκίνητο ("Bugatti", "David Sasu", 90828, 0, 0, "Cherry Red")

Η εκτέλεση αυτού του κωδικού οδηγεί σε κλήση στη μέθοδο __init__ στην κατηγορία Car. Η ευθύνη αυτής της μεθόδου είναι η δημιουργία ενός αντικειμένου πιστωτικού αυτοκινήτου που δημιουργήθηκε πρόσφατα με τις παρεχόμενες τιμές παρουσίας. Κάθε αντικείμενο της κατηγορίας αυτοκινήτου αποτελείται από έξι μεταβλητές παρουσίας που είναι:

  • _car_name
  • _driver_name
  • _πινακίδα κυκλοφορίας
  • _τωρινή ταχύτητα
  • _ ταχύτητα_χρέωση
  • _χρώμα

Μέθοδοι πρόσβασης

Αυτές είναι μέθοδοι που έχουν γραφτεί για πρόσβαση στις πληροφορίες κατάστασης μιας παρουσίας αντικειμένου. Στην κατηγορία Αυτοκίνητο, οι μέθοδοι πρόσβασης που γράφτηκαν είναι:

  • get_car_name
  • get_driver_name
  • get_license_plate
  • get_current_speed
  • get_speeding_charge
  • get_colour

Μέθοδοι μεταλλάκτη:

Αυτές είναι μέθοδοι που γράφονται για να αλλάξουν τις πληροφορίες κατάστασης μιας παρουσίας αντικειμένου. Στην κατηγορία Car, οι μέθοδοι μεταλλάκτη που γράφτηκαν είναι:

  • set_driver
  • πρόστιμο υπερβολικής ταχύτητας
  • κάνω πληρωμή

Η έννοια της ενθυλάκωσης

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

Σφάλμα ελέγχου

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

Πρώτον, σημειώστε ότι δεν ελέγχουμε τους τύπους των παραμέτρων του speeding_ticket και τις μεθόδους make_payment, ούτε ελέγχουμε τους τύπους οποιασδήποτε από τις παραμέτρους του κατασκευαστή. Αυτό θα μπορούσε να οδηγήσει σε διακοπή του προγράμματος εάν ο χρήστης παρέχει ένα επιχείρημα που δεν ήταν αναμενόμενο. Για παράδειγμα, εάν ο χρήστης κάνει μια κλήση, όπως speeding_ticket ("chips ahoy"), το πρόγραμμα θα διακοπεί επειδή ο τύπος που περίμενε η μέθοδος ήταν ακέραιος και όχι συμβολοσειρά.

Τώρα καταλαβαίνετε τα βασικά της κλάσης Python

Σε αυτό το άρθρο, έχετε εισαχθεί στην έννοια μιας κλάσης Python και ενός αντικειμένου κλάσης Python. Σας έχουν επίσης εισαχθεί οι ιδέες πάνω στις οποίες βασίζεται μια τάξη python, όπως: ενθυλάκωση, το «αυτο» αναγνωριστικό, μέθοδοι προσπέλασης και μέθοδοι μεταλλάκτη.

Με αυτές τις πληροφορίες, θα πρέπει να μπορείτε να δημιουργήσετε ένα απλό μάθημα Python και να το δοκιμάσετε :)

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Το WhatsApp Επιβάλλει τον Βιομετρικό έλεγχο ταυτότητας για Επιτραπέζιο και Web Access

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

Σχετικά θέματα
  • Προγραμματισμός
  • Πύθων
Σχετικά με τον Συγγραφέα
Ντέιβιντ Σάσου (Δημοσιεύθηκαν 1 άρθρα)Περισσότερα από τον David Sasu

Εγγραφείτε στο Newsletter μας

Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Ένα ακόμη βήμα…!

Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.

.