Python Modules
Τα Python Modules είναι αρχεία που περιέχουν κώδικα Python. Ένα module μπορεί να ορίζει συναρτήσεις, κλάσεις και μεταβλητές που μπορούμε να εισάγουμε και να χρησιμοποιήσουμε σε άλλα προγράμματα Python.
Δημιουργία ενός Module
Για να δημιουργήσετε ένα module, απλώς αποθηκεύστε τον κώδικα Python σε ένα αρχείο με την επέκταση .py. Για παράδειγμα, ας δημιουργήσουμε ένα module με όνομα my_module.py:
# my_module.py def greeting(name): print("Hello, " + name)
Εισαγωγή ενός Module
Για να χρησιμοποιήσετε ένα module που έχετε δημιουργήσει, χρησιμοποιήστε την εντολή import, ακολουθούμενη από το όνομα του module (χωρίς την επέκταση .py):
import my_module my_module.greeting("John")
Όταν εκτελείται το παραπάνω πρόγραμμα, θα εμφανίσει: “Hello, John”
Μπορείτε να εισάγετε μόνο τις συναρτήσεις που χρειάζεστε από ένα module, χρησιμοποιώντας τη δήλωση from … import:
# my_module.py def greeting(name): print("Hello, " + name) def farewell(name): print("Goodbye, " + name)
from my_module import greeting greeting("John")
Στο παραπάνω παράδειγμα, εισάγουμε μόνο τη συνάρτηση greeting
από το my_module
. Εκτελώντας το πρόγραμμα θα εμφανίσει “Hello, John”. Η συνάρτηση farewell
δεν θα είναι διαθέσιμη στο πρόγραμμα.
Μπορείτε επίσης να εισάγετε πολλαπλές συναρτήσεις ταυτόχρονα, διαχωρίζοντάς τες με κόμμα:
from my_module import greeting, farewell greeting("John") farewell("John")
[adinserter block=”2″]
Μπορείτε να αλλάξετε το όνομα μιας συνάρτησης κατά την εισαγωγή της, χρησιμοποιώντας τη δήλωση as:
from my_module import greeting as gr gr("John")
Στο παραπάνω παράδειγμα, εισάγουμε τη συνάρτηση greeting
από το my_module
, αλλά την καλούμε με το όνομα gr
. Εκτελώντας το πρόγραμμα θα εμφανίσει “Hello, John”.
Το module μπορεί να περιέχει συναρτήσεις, όπως έχουμε ήδη περιγράψει, αλλά και μεταβλητές όλων των τύπων (λίστες, λεξικά, αντικείμενα κ.λπ.):
# my_module.py def greeting(name): print("Hello, " + name) def farewell(name): print("Goodbye, " + name) age = 25 names = ["Γιάννης", "Ελένη", "Νίκος"]
Μπορείτε να εισάγετε τις μεταβλητές από το module όπως εισάγετε και τις συναρτήσεις:
from my_module import age, names print(age) # Εμφανίζει: 25 print(names) # Εμφανίζει: ["Γιάννης", "Ελένη", "Νίκος"]
Ή μπορείτε να εισάγετε ολόκληρο το module και να χρησιμοποιήσετε τις μεταβλητές με το όνομα του module ως πρόθεμα:
import my_module print(my_module.age) # Εμφανίζει: 25 print(my_module.names) # Εμφανίζει: ["Γιάννης", "Ελένη", "Νίκος"]
Ας δημιουργήσουμε ένα module με ένα λεξικό και στη συνέχεια θα το εισάγουμε σε ένα άλλο αρχείο Python.
- Δημιουργήστε ένα αρχείο Python με όνομα
my_dictionary_module.py
και προσθέστε τον ακόλουθο κώδικα:
# my_dictionary_module.py person = { "name": "Γιάννης", "age": 30, "city": "Αθήνα" }
- Τώρα, δημιουργήστε ένα νέο αρχείο Python και εισάγετε το λεξικό από το
my_dictionary_module.py
:
from my_dictionary_module import person print(person) # Εμφανίζει: {"name": "Γιάννης", "age": 30, "city": "Αθήνα"} print(person["name"]) # Εμφανίζει: Γιάννης print(person["age"]) # Εμφανίζει: 30 print(person["city"]) # Εμφανίζει: Αθήνα
[adinserter block=”3″]
Με αυτόν τον τρόπο, μπορείτε να εισάγετε και να χρησιμοποιήσετε λεξικά από άλλα αρχεία Python.
Υπάρχουν αρκετά ενσωματωμένα modules στην Python, τα οποία μπορείτε να εισάγετε όποτε θέλετε.
Δείτε μερικά παραδείγματα ενσωματωμένων modules και πώς μπορείτε να τα εισάγετε:
import math print(math.sqrt(16)) # Εμφανίζει: 4.0 print(math.pi) # Εμφανίζει: 3.141592653589793 import random print(random.randint(1, 10)) # Εμφανίζει έναν τυχαίο ακέραιο από το 1 έως το 10 import datetime current_date = datetime.datetime.now() print(current_date) # Εμφανίζει την τρέχουσα ημερομηνία και ώρα import os print(os.getcwd()) # Εμφανίζει τον τρέχοντα φάκελο εργασίας
Υπάρχουν πολλά άλλα ενσωματωμένα modules που μπορείτε να χρησιμοποιήσετε για να επεκτείνετε τις λειτουργίες του κώδικά σας. Μπορείτε να βρείτε μια πλήρη λίστα των ενσωματωμένων modules στην επίσημη τεκμηρίωση της Python:
Υπάρχει μια ενσωματωμένη συνάρτηση για να απαριθμήσετε όλα τα ονόματα συναρτήσεων (ή ονόματα μεταβλητών) σε ένα module. Η συνάρτηση dir():
import math # Εμφανίζει όλες τις συναρτήσεις και τις μεταβλητές που παρέχονται από το module math print(dir(math))
Αυτό θα εμφανίσει μια λίστα με όλες τις συναρτήσεις και τις μεταβλητές που περιέχονται στο module math. Μπορείτε να χρησιμοποιήσετε τη συνάρτηση dir() για οποιοδήποτε άλλο module που εισάγετε, για να δείτε τις διαθέσιμες συναρτήσεις και μεταβλητές.
Σημείωση: Η συνάρτηση dir() επιστρέφει επίσης ορισμένα ειδικά ονόματα που ξεκινούν και τελειώνουν με διπλές κάτω παύλες (π.χ. __name__
, __file__
κ.λπ.). Αυτά τα ονόματα αναφέρονται σε ειδικά χαρακτηριστικά του module και συνήθως δεν χρησιμοποιούνται σε καθημερινό προγραμματισμό.