Μέθοδοι Instance έναντι Static έναντι Class σε Python: Οι σημαντικές διαφορές

Μέθοδοι Instance έναντι Static έναντι Class σε Python: Οι σημαντικές διαφορές

Οι μέθοδοι Python μπορεί συχνά να προκαλούν σύγχυση μόλις μπείτε σε αντικειμενοστραφή προγραμματισμό (OOP). Αυτός ο οδηγός καλύπτει τους τρεις κύριους τύπους μεθόδων στην Python.





Οι 3 τύποι μεθόδων στην Python

Υπάρχουν τρεις τύποι μεθόδων στην Python: μεθόδους παραδείγματος , στατικές μέθοδοι , και μεθόδους τάξης Το





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





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

Πριν ξεκινήσουμε: Κατανόηση μοτίβων διακοσμητών

Πριν εξετάσετε τις διαφορές, είναι σημαντικό να κατανοήσετε ένα σχέδιο σχεδίου γνωστό ως διακοσμητικό μοτίβο , ή απλά ονομάζεται α διακοσμητής Το



Οι διακοσμητές ακούγονται περίπλοκοι, αλλά δεν υπάρχει τίποτα να φοβηθούν. Οι διακοσμητές είναι απλά λειτουργίες. Μπορείτε να τα γράψετε μόνοι σας ή να χρησιμοποιήσετε αυτά που περιλαμβάνονται σε βιβλιοθήκες ή στην τυπική βιβλιοθήκη Python.

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





Το μοτίβο διακοσμητή είναι ο προτιμώμενος τρόπος Python για τον καθορισμό στατικών ή κλάσεων μεθόδων. Δείτε πώς φαίνεται κάποιος στην Python:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is decorated! '''
print('I'm a decorated function!')

de = DecoratorExample()
de.example_function()

Οι διακοσμητές πρέπει να προηγούνται αμέσως μιας δήλωσης συνάρτησης ή κλάσης. Ξεκινούν με το @ και σε αντίθεση με τις συνήθεις μεθόδους, δεν χρειάζεται να βάζετε παρενθέσεις στο τέλος, εκτός εάν μεταφέρετε επιχειρήματα.





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

Ο ελεγκτής xbox one δεν λειτουργεί

Μέθοδοι παρουσίας στην Python

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

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

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

Εδώ είναι ένα παράδειγμα:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
self.name = 'Decorator_Example'
def example_function(self):
''' This method is an instance method! '''
print('I'm an instance method!')
print('My name is ' + self.name)

de = DecoratorExample()
de.example_function()

ο όνομα η μεταβλητή είναι προσβάσιμη μέσω εαυτός Το Παρατηρήστε ότι όταν παράδειγμα_λειτουργίας καλείται, δεν χρειάζεται να περάσετε τον εαυτό σας σε --- Η Python το κάνει αυτό για εσάς.

Στατικές μέθοδοι στην Python

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

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is a static method! '''
print('I'm a static method!')

de = DecoratorExample.example_function()

ο @staticmethod διακοσμητής χρησιμοποιήθηκε για να πει στην Python ότι αυτή η μέθοδος είναι μια στατική μέθοδος.

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

Μέθοδοι κλάσης στην Python

Οι μέθοδοι κλάσης είναι ο τρίτος και τελευταίος τύπος μεθόδου OOP που πρέπει να γνωρίζετε. Οι μέθοδοι της τάξης γνωρίζουν για την τάξη τους. Δεν μπορούν να έχουν πρόσβαση σε συγκεκριμένα δεδομένα παρουσίας, αλλά μπορούν να καλέσουν άλλες στατικές μεθόδους.

Οι μέθοδοι της τάξης δεν χρειάζονται εαυτός ως επιχείρημα, αλλά χρειάζονται μια παράμετρο που ονομάζεται cls Το Αυτό σημαίνει τάξη , και όπως ο εαυτός, μεταφέρεται αυτόματα από την Python.

Οι μέθοδοι κλάσης δημιουργούνται χρησιμοποιώντας το @classmethod διακοσμητής.

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@classmethod
def example_function(cls):
''' This method is a class method! '''
print('I'm a class method!')
cls.some_other_function()
@staticmethod
def some_other_function():
print('Hello!')

de = DecoratorExample()
de.example_function()

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

Πότε να χρησιμοποιήσετε κάθε τύπο μεθόδου

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

πώς να ελέγξετε αν ο σκληρός δίσκος αποτυγχάνει

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

Συνοψίζοντας:

  1. Μέθοδοι παρουσίας: Ο πιο συνηθισμένος τύπος μεθόδου. Δυνατότητα πρόσβασης σε δεδομένα και ιδιότητες μοναδικές για κάθε παρουσία.
  2. Στατικές μέθοδοι: Δεν είναι δυνατή η πρόσβαση σε οτιδήποτε άλλο στην τάξη. Πλήρως αυτόνομος κώδικας.
  3. Μέθοδοι τάξης: Μπορεί να έχει πρόσβαση σε περιορισμένες μεθόδους στην τάξη. Μπορεί να τροποποιήσει τις συγκεκριμένες λεπτομέρειες της κλάσης.

Εάν αυτό το σεμινάριο ήταν λίγο προχωρημένο ή δεν ήταν ακριβώς αυτό που ψάχνατε, τότε γιατί να μην ρίξετε μια ματιά σε αυτά τα μαθήματα για να μεταβείτε από αρχάριους σε Python σε επαγγελματίες; Αυτοί οι 5 ιστότοποι είναι επίσης εξαιρετικοί για αρχάριους Python. Εάν θέλετε μια φυσική, πραγματική χρήση της Python, αλλά βαριέστε το Raspberry Pi, τι θα λέγατε για τον οδηγό μας για τον έλεγχο του Arduino με την Python ;

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Πώς να καθαρίσετε τον υπολογιστή σας με Windows χρησιμοποιώντας τη γραμμή εντολών

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

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • Προγραμματισμός
  • Πύθων
Σχετικά με τον Συγγραφέα Τζο Κόμπερν(Δημοσιεύθηκαν 136 άρθρα)

Ο Joe είναι απόφοιτος της Επιστήμης των Υπολογιστών από το Πανεπιστήμιο του Lincoln, Ηνωμένο Βασίλειο. Είναι επαγγελματίας προγραμματιστής λογισμικού και όταν δεν πετάει με drones ή δεν γράφει μουσική, μπορεί συχνά να βρεθεί να βγάζει φωτογραφίες ή να παράγει βίντεο.

Περισσότερα από τον Joe Coburn

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

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

Κάντε κλικ εδώ για εγγραφή