Εισαγωγή
Python είναι μία από τις πιο συχνά χρησιμοποιούμενες γλώσσες προγραμματισμού παγκοσμίως. Τα αρθρώματα αποτελούν κρίσιμο μέρος του κώδικα Python. Ένα άρθρωμα είναι απλώς ένα .py αρχείο στο πλαίσιο της Python 3. Αυτό σημαίνει ότι μπορείτε να αναφέρεστε σε οποιοδήποτε αρχείο Python ως άρθρωμα.
Είναι δυνατό να αποκτήσετε αυτά τα αρθρώματα μέσω της προδιαμορφωμένης βιβλιοθήκης. Μπορείτε να ρίξετε μια ματιά στην Python Standard Library για να μάθετε περισσότερα. Αυτά εγκαθίστανται στο σύστημά σας όταν εγκαθιστάτε την Python. Σε άλλες περιπτώσεις, μπορείτε να εγκαταστήσετε αυτά τα αρθρώματα χρησιμοποιώντας τον διαχειριστή πακέτων της Python pip. Αλλά τι γίνεται αν θέλετε να δημιουργήσετε ένα προσαρμοσμένο άρθρωμα; Αν συμβαίνει αυτό, τότε θα χαρείτε να μάθετε ότι μπορείτε να φτιάξετε τα δικά σας αρθρώματα στην Python.
Σε αυτόν τον λεπτομερή οδηγό, θα περιγράψουμε τα βήματα που πρέπει να ακολουθήσετε για να γράψετε και να εισαγάγετε αρθρώματα στην Python 3.
Προαπαιτούμενα
Πριν ξεκινήσουμε, θα πρέπει να βεβαιωθείτε ότι έχετε εγκαταστήσει την Python 3 και ότι έχετε ρυθμίσει ένα περιβάλλον προγραμματισμού. Μπορείτε να ακολουθήσετε τον οδηγό μας για την εγκατάσταση της Python 3 και τη ρύθμιση ενός τοπικού περιβάλλοντος προγραμματισμού στο Ubuntu 16.04 για να ολοκληρώσετε την εγκατάσταση σε περίπτωση που δεν την έχετε έτοιμη.
Πώς να γράψετε ένα άρθρωμα;
Ας ξεκινήσουμε με τη συγγραφή ενός αρθρώματος. Θα γράφατε ένα άρθρωμα ακριβώς όπως θα συνθέτατε οποιοδήποτε άλλο αρχείο Python. Ένα τυπικό άρθρωμα περιλαμβάνει τους ορισμούς των συναρτήσεων, των κλάσεων και των μεταβλητών. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το άρθρωμα για να το εφαρμόσετε σε άλλα προγράμματα Python.
Για να σας βοηθήσουμε να κατανοήσετε, ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι θέλουμε να φτιάξουμε ένα αρχείο με όνομα hello.py. Αργότερα θα το εισαγάγουμε και σε ένα άλλο αρχείο. Το πρώτο βήμα στη διαδικασία είναι να δημιουργήσουμε μια συνάρτηση. Αυτή η συνάρτηση θα χρησιμεύσει για την εκτύπωση του Hello, World! κάπως έτσι:
|
1 2 3 |
# Ορισμός συνάρτησης def world(): print("Hello, World!") |
Σε αυτό το σημείο, η εκτέλεση της εντολής python hello.py δεν θα σας δώσει κανένα αποτέλεσμα. Αυτό συμβαίνει επειδή δεν έχουμε δώσει ακόμα οδηγίες στο πρόγραμμα. Για να λειτουργήσει, πρέπει να εισαγάγουμε το άρθρωμα.
Πώς να εισαγάγετε ένα άρθρωμα;
Για να εισαγάγετε το άρθρωμά σας ώστε να το χρησιμοποιήσετε, πρέπει να δημιουργήσετε ένα δεύτερο αρχείο στον ίδιο κατάλογο. Θα ονομάσουμε αυτό το νέο αρχείο main_program.py. Ο λόγος για τον οποίο και τα δύο αρχεία πρέπει να βρίσκονται στον ίδιο κατάλογο είναι ότι πρέπει να καθοδηγήσουμε το πρόγραμμα για το πού θα βρει το άρθρωμα. Αυτό ισχύει για οποιοδήποτε νέο, προσαρμοσμένο άρθρωμα που δεν είναι ενσωματωμένο:
|
1 2 3 4 5 |
# Εισαγωγή του αρθρώματος hello import hello # Κλήση συνάρτησης hello.world() |
Χρησιμοποιήσαμε τη σημειογραφία τελείας για το όνομα του αρθρώματος για να καλέσουμε τη συνάρτηση. Ένας άλλος τρόπος για να γίνει αυτό είναι να χρησιμοποιήσετε τη μέθοδο from...import. Εδώ, θα καλέσουμε τη συνάρτηση ως world() εισάγοντας το άρθρωμα ως from hello import world. Τέλος, μπορείτε να εκτελέσετε την εντολή:
|
1 |
python main_program.py |
Η εντολή θα σας εμφανίσει το ακόλουθο αποτέλεσμα:
|
1 2 |
Έξοδος: Hello, World! |
Προσθήκη μεταβλητών σε ένα άρθρωμα
Στη συνέχεια, θα δούμε πώς να προσθέσετε μεταβλητές στο άρθρωμα τοποθετώντας ορισμούς σε αυτό:
|
1 2 3 4 5 6 |
# Ορισμός συνάρτησης def world(): print("Hello, World!") # Ορισμός μεταβλητής shark = "Sammy" |
Στη συνέχεια, θα καλέσετε τη μεταβλητή στη συνάρτηση print(). Θα την καλέσουμε μέσα στο αρχείο main_program.py :
|
1 2 3 4 5 6 7 |
# Εισαγωγή του αρθρώματος hello import hello # Κλήση συνάρτησης hello.world() # Εκτύπωση μεταβλητής print(hello.shark) |
Η εκτέλεση του προγράμματος θα εμφανίσει αυτό το αποτέλεσμα:
|
1 2 3 |
Έξοδος: Hello, World! Sammy |
Προσθήκη κλάσης σε ένα άρθρωμα
Τέλος, θα δούμε πώς μπορείτε να ορίσετε μια κλάση στο αρχείο σας για το άρθρωμα. Συνεχίζοντας το παράδειγμά μας, θα δημιουργήσουμε μια νέα κλάση με όνομα Octopus στο αρχείο hello.py. Θα της εκχωρήσουμε επίσης τα γνωρίσματα name και color. Στη συνέχεια, θα προσθέσουμε μια συνάρτηση για να την κάνουμε εκτυπώσιμη:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Ορισμός συνάρτησης def world(): print("Γεια σου, κόσμε!") # Ορισμός μεταβλητής shark = "Sammy" # Ορισμός κλάσης class Octopus: def __init__(self, name, color): self.color = color self.name = name def tell_me_about_the_octopus(self): print("Αυτό το χταπόδι είναι " + self.color + ".") print(self.name + " είναι το όνομα του χταποδιού.") |
Στη συνέχεια, πρέπει να προσθέσετε την κλάση κοντά στο τέλος του main_program.py αρχείου:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# Εισαγωγή του module hello import hello # Κλήση συνάρτησης hello.world() # Εκτύπωση μεταβλητής print(hello.shark) # Κλήση κλάσης jesse = hello.Octopus("Jesse", "πορτοκαλί") jesse.tell_me_about_the_octopus() |
Μπορείτε να καλέσετε την κλάση με την εντολή hello.Octopus(). Θα σας εμφανίσει τις συναρτήσεις και τα χαρακτηριστικά της κλάσης Octopus στο namespace του αρχείου. Ως εκ τούτου, μπορείτε να γράψετε jesse.tell_me_about_the_octopus() στην τελευταία γραμμή χωρίς να καλέσετε το hello. Είναι επίσης δυνατό να καλέσετε ένα μεμονωμένο χαρακτηριστικό της κλάσης χωρίς να χρησιμοποιήσετε το hello. Για παράδειγμα, μπορείτε απλά να εκτελέσετε το jesse.color. Όταν εκτελέσετε το πρόγραμμα, θα εμφανίσει το ακόλουθο αποτέλεσμα:
|
1 2 3 4 5 |
Έξοδος: Γεια σου, κόσμε! Sammy Αυτό το χταπόδι είναι πορτοκαλί. Jesse είναι το όνομα'του χταποδιού. |
Υλοποίηση κώδικα με modules
Εκεί όπου μπορείτε να χρησιμοποιήσετε modules για να καθορίσετε ορισμούς, μπορείτε επίσης να τα χρησιμοποιήσετε για να υλοποιήσετε κώδικα. Ας υποθέσουμε ότι θέλουμε να υλοποιήσουμε τη συνάρτηση world(). Θα ξαναγράψουμε το αρχικό μας αρχείο hello.py εντελώς:
|
1 2 3 4 5 6 |
# Ορισμός συνάρτησης def world(): print("Γεια σου, κόσμε!") # Κλήση συνάρτησης μέσα στο module world() |
Από το αρχείο main_program.py θα διαγράψουμε τα πάντα εκτός από τη δήλωση εισαγωγής (import), αφήνοντας τα εξής:
|
1 2 |
# Εισαγωγή του module hello import hello |
Η εκτέλεση του κύριου αρχείου προγράμματος θα σας δώσει αυτό το αποτέλεσμα, καθώς το πρόγραμμα υλοποιεί και εκτελεί τη συνάρτηση world() :
|
1 2 |
Έξοδος: Γεια σου, κόσμε! |
Πώς να αποκτήσετε πρόσβαση σε ένα module από άλλον κατάλογο;
Τώρα που γνωρίζετε πώς να δημιουργείτε και να τροποποιείτε modules, πρέπει να μάθετε πώς να αποκτάτε πρόσβαση σε αυτά από άλλον κατάλογο. Αυτό είναι χρήσιμο όταν πρέπει να χρησιμοποιήσετε ένα συγκεκριμένο module σε ένα άλλο έργο. Υπάρχουν δύο τρόποι για να το κάνετε αυτό, τους οποίους θα εξηγήσουμε παρακάτω.
-
Προσάρτηση διαδρομών
Η πρώτη μέθοδος είναι να ενεργοποιήσετε τη διαδρομή του module χρησιμοποιώντας τα αρχεία προγραμματισμού που χρησιμοποιούν ήδη το module. Δυστυχώς, αυτό δεν σημαίνει ότι το module θα είναι διαθέσιμο σε ολόκληρο το σύστημα. Επομένως, θεωρείται μόνο μια προσωρινή λύση. Συχνά χρησιμοποιείται κατά τη φάση ανάπτυξης του έργου.
Μπορείτε να ξεκινήσετε τη διαδικασία προσάρτησης εισάγοντας το module sys και άλλα σημαντικά modules που πρέπει να χρησιμοποιήσετε. Θα τα εισαγάγουμε στο κύριο αρχείο προγράμματος. Μπορείτε να βρείτε το module sys στην Τυπική Βιβλιοθήκη της Python. Το χρειάζεστε επειδή περιέχει τις βασικές παραμέτρους και συναρτήσεις που είναι ειδικές για το σύστημά σας.
Ας εξετάσουμε ξανά το προηγούμενο παράδειγμά μας. Ας υποθέσουμε ότι το αρχείο hello.py βρίσκεται στη διαδρομή /usr/sammy/ και το αρχείο main_program.py βρίσκεται σε άλλον κατάλογο. Θα εισαγάγουμε πρώτα το module hello στο αρχείο main_program.py χρησιμοποιώντας το module sys. Στη συνέχεια, θα προσαρτήσουμε το /usr/sammy/ στη διαδρομή:
|
1 2 3 4 5 6 |
import sys sys.path.append('/usr/sammy/') import hello ... |
Εάν ορίσετε τη διαδρομή σωστά, το main_program.py το αρχείο θα εκτελεστεί εύκολα χωρίς σφάλματα. Θα λάβετε το ίδιο αποτέλεσμα όπως όταν και τα δύο αρχεία βρίσκονταν στον ίδιο κατάλογο.
-
Διαδρομή Python
Η άλλη επιλογή που μπορείτε να ακολουθήσετε είναι η διαδρομή Python. Εδώ, θα προσθέτατε το ίδιο το module σε μια διαδρομή την οποία η Python ελέγχει για modules και πακέτα. Όπως πιθανώς μπορείτε να συμπεράνετε, αυτό καθιστά το module διαθέσιμο σε όλο το σύστημα, καθιστώντας το μια βιώσιμη μόνιμη λύση.
Για να το κάνετε αυτό, πρέπει να μάθετε πού αναζητά η Python modules. Θα πρέπει να εκτελέσετε τον διερμηνέα της Python από το προγραμματιστικό περιβάλλον, το οποίο μοιάζει κάπως έτσι:
|
1 |
python |
Το επόμενο βήμα είναι να εισαγάγετε το sys module:
|
1 |
>>> import sys |
Στη συνέχεια, εκτυπώστε τη διαδρομή συστήματος:
|
1 |
>>> print(sys.path) |
Τώρα, θα δείτε μια διαδρομή συστήματος ως έξοδο. Θα υπάρχει τουλάχιστον μία. Ωστόσο, μπορεί να υπάρχουν αρκετές σε ένα προγραμματιστικό περιβάλλον. Στη λίστα, εντοπίστε το περιβάλλον που χρησιμοποιείτε. Λάβετε υπόψη ότι ίσως θέλετε να προσθέσετε το module και στην κύρια διαδρομή Python του συστήματος. Δείτε πώς θα μοιάζει:
|
1 2 |
Έξοδος: '/usr/sammy/my_env/lib/python3.5/site-packages' |
Τέλος, μετακινήστε το hello.py αρχείο σε αυτόν τον κατάλογο και εισαγάγετε το module ως εξής:
|
1 2 |
import hello ... |
Η προσπάθειά σας είναι επιτυχής εάν το πρόγραμμα εκτελέσει το αρχείο χωρίς να παρουσιάσει σφάλματα. Ως αποτέλεσμα αυτής της διαδικασίας, θα μπορείτε να έχετε πρόσβαση στο module από οποιονδήποτε κατάλογο στο σύστημά σας.
Συμπέρασμα
Ο σκοπός αυτού του οδηγού ήταν να σας βοηθήσει να εξοικειωθείτε με τη συγγραφή modules στην Python. Είναι πολύ παρόμοιο με τον τρόπο που θα γράφατε οποιοδήποτε αρχείο Python .py . Αρχικά μιλήσαμε για το τι είναι στην πραγματικότητα ένα Python module και τα σχετικά χαρακτηριστικά του. Στη συνέχεια, ανακαλύψαμε πώς να εφαρμόσουμε αυτούς τους ορισμούς σε άλλα αρχεία προγραμματισμού στην Python. Τέλος, κατανοήσαμε τις λεπτομέρειες της προσβασιμότητας των modules. Τώρα ξέρετε πώς να γράφετε modules στην Python 3 καθώς και πώς να έχετε πρόσβαση σε αυτά.
Για να επεκτείνετε περαιτέρω τις γνώσεις σας σχετικά με τη γλώσσα προγραμματισμού Python, ανατρέξτε στο ιστολόγιό μας για περισσότερους πόρους:
- Python 3: Ένας οδηγός για τη μετατροπή τύπων δεδομένων
- Βρόχοι στην Python 3: Χρήση των εντολών Break, Continue και Pass
- Χρήση μορφοποιητών συμβολοσειρών στην Python 3
Καλό προγραμματισμό!
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.