ΕΝΟΤΗΤΑ 27 - Modules

Στο σημερινό δωρεάν μάθημα Python θα δούμε πως να οργανώνουμε καλύτερα τον κώδικα μας με την χρήση των modules.
Τα περισσότερα προγράμματα τείνουν να περιλαμβάνουν τόσες πολλές γραμμές κώδικα που λογικά δεν θα τις αποθηκεύσετε όλες μέσα σε ένα μόνο αρχείο. Αντ’ αυτού, χωρίζεται τον κώδικα σας σε πολλά αρχεία, κάτι που βοηθά στην καλύτερη οργάνωση του κώδικα σας. Κάθε ένα από αυτά τα αρχεία ονομάζεται module. Μέσα στα modules γράφετε κλάσεις, functions, και μεταβλητές που μπορείτε να εισάγετε στο κύριο σας πρόγραμμα. Εκτός από τα δικά σας modules, η κοινότητα των Python προγραμματιστών έχουν δημιουργήσει μια μεγάλη λίστα από Modules που μπορούμε να χρησιμοποιήσουμε προσθέτοντας έξτρα δυνατότητες στο κώδικα μας. Στο σημερινό δωρεάν μάθημα Python θα δούμε πως να δημιουργούμε τα δικά μας modules, πως να τα εισάγουμε στο πρόγραμμα μας, και πως να χρησιμοποιούμε modules που μας προσφέρει η ίδια η Python.
Ας ξεκινήσουμε με το να δημιουργήσουμε το δικό μας module. Για αρχή θα πρέπει να δημιουργήσουμε ένα αρχείο με το όνομα employeeinfo.py μέσα στο οποίο θα γράψουμε την κλάση Employee.
employeeinfo.py
class Employee(): def __init__(self, first_name, last_name): self.first_name = first_name self.last_name = last_name def showmessage(self): print("This is the Employee") def __str__(self): return f'First Name = {self.first_name}, Last Name = {self.last_name}'
Μόλις έχετε γράψει το πρώτο σας Module! Επαναλαμβάνω για άλλη μια φορά ότι τα Modules δεν είναι τίποτα περισσότερο από κώδικας γραμμένος σε αρχεία που μπορούμε να εισάγουμε στο κύριο πρόγραμμα μας. Τώρα θα πρέπει να ενημερώσουμε το κύριο μας πρόγραμμα (app.py) ότι θέλουμε να χρησιμοποιήσουμε το module employeeinfo έτσι ώστε να αποκτήσουμε πρόσβαση στην κλάση και τις δύο functions που περιέχει.
Για να το πετύχουμε αυτό, γράφουμε την εντολή import σαν πρώτη γραμμή στον κώδικα μας και αμέσως μετά το όνομα του αρχείου χωρίς την κατάληξη py.
App.py
import employeeinfo michail = employeeinfo.Employee("Michail", "Kassapoglou") michail.showmessage() print(michail)
Output
This is the Employee First Name = Michail, Last Name = Kassapoglou
Για να μπορέσουμε να δημιουργήσουμε ένα αντικείμενο είδος Employee πρέπει να πρώτα να κάνουμε import το module employeeinfo. Μετά χρησιμοποιώντας το employeeinfo μπορούμε να καλέσουμε την κλάση που είναι γραμμένη μέσα σε αυτό. Αφού δημιουργήσουμε το αντικείμενο, μετά μπορούμε να καλέσουμε και τις μεθόδους που βρίσκονται μέσα στην κλάση.
Αν και ο τρόπος με τον οποίο έχουμε δηλώσει το module είναι σωστός, το να γράφουμε ο όνομα του module μπροστά από την κλάση κάθε φορά πρέπει να την καλέσουμε είναι κάπως κουραστικός. Για αυτό το λόγο μπορούμε να δηλώσουμε τι ακριβώς από το module θέλουμε να χρησιμοποιήσουμε προσθέτοντας την εντολή from στην import δήλωση.
Ας δούμε πως αλλάζει η δήλωση του module Employee στο app.py αρχείο.
App.py
from employeeinfo import Employee michail = Employee("Michail", "Kassapoglou") michail.showmessage() print(michail)
Output
This is the Employee First Name = Michail, Last Name = Kassapoglou
Τώρα το πρόγραμμα μας είναι πιο σύντομο σε κώδικα και η δήλωση δημιουργίας του αντικειμένου από την κλάση Employee είναι αυτή που ήδη γνωρίζουμε.
Μπορούμε επίσης να δώσουμε ένα δικό μας όνομα στην κλάση που κάνουμε import. Το όνομα το δίνουμε με την εντολή as και το όνομα που δίνουμε εμείς ονομάζεται alias.
App.py
from employeeinfo import Employee as Emp michail = Emp("Michail", "Kassapoglou") michail.showmessage() print(michail)
Output
This is the Employee First Name = Michail, Last Name = Kassapoglou
Με την ίδια λογική, μπορούμε να καλέσουμε και modules που μας προσφέρει η ίδια η Python. Στο παράδειγμα μας θα χρησιμοποιήσουμε το math module έτσι ώστε να μπορούμε να κάνουμε advanced αριθμητικές πράξεις απλά χρησιμοποιώντας τα έτοιμα functions που μας προσφέρει
App.py
from employeeinfo import Employee as Emp from math import floor, pi michail = Emp("Michail", "Kassapoglou") michail.showmessage() print(michail) print(floor(8.5)) print(pi)
Output
This is the Employee First Name = Michail, Last Name = Kassapoglou 8 3.141592653589793
ΕΙΣΗΓΗΤΗΣ
Μιχάλης Κασάπογλου
Ο Μιχάλης Κασάπογλου, είναι ένας από τους πιο έμπειρους τεχνικούς εκπαιδευτές στον χώρο του προγραμματισμού με πάνω από 20 χρόνια εμπειρία. Έχει εργαστεί σαν IT Operations Manager, Senior Programmer, και Training Team Leader ενώ κατέχει και αρκετές πιστοποιήσεις που καλύπτουν ένα μεγάλο φάσμα τεχνολογιών στο προγραμματισμό, σε βάσεις δεδομένων και cloud. Στον ελεύθερο του χρόνο διατηρεί ένα τεχνολογικό blog στο οποίο θα βρείτε αρκετά δωρεάν μαθήματα προγραμματισμού για αρχάριους.